Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
664b48f
Add a scheduled run every 5 mins
martin-g Apr 27, 2022
a7fd12c
Update the Docker images with the latest releases of build-su2 and te…
martin-g May 11, 2022
ead0e1e
Re-enable the config sets
martin-g May 11, 2022
efe98fe
Lower warnlevel to 0
martin-g May 11, 2022
2614022
Use dynamically linked Zlib and Szip
martin-g May 11, 2022
fb75f04
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 13, 2022
77cc996
Revert "Fixes #1568 - Prefer loading zlib and szip libraries dynamica…
martin-g May 16, 2022
250d02f
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 16, 2022
22ca036
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 18, 2022
72881c4
Update test expectations
martin-g May 18, 2022
f29d38c
Fix the 4th value in parallel_regression_AD discadj_fsi_airfoil test
martin-g May 18, 2022
bf639f2
Revert a change in grad_dv.opt.ref
martin-g May 18, 2022
1b478c3
Add new line at the end of the file
martin-g May 19, 2022
ed03f76
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 19, 2022
fffa58b
Re-enable warnlevel=3 and suppress some errors and warnings in extern…
martin-g May 20, 2022
c280772
Remove leftovers from diff
martin-g May 20, 2022
277a6b0
Add -Wno-absolute-value for externals/metis
martin-g May 20, 2022
5f93f72
remove -Wno-macro-redefined - it is not recognized by GCC 9.4
martin-g May 20, 2022
caca991
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 23, 2022
5df8fa4
Suppress some new errors and warnings in the main meson.build
martin-g May 23, 2022
168560c
Add exclusion for -Werror=class-memaccess
martin-g May 23, 2022
aafbc18
Add an exclusion for -Werror=deprecated-copy for teciosrc
martin-g May 23, 2022
aa9fe3a
Update the expected value for vandv.py's bump_sst1994m test case
martin-g May 23, 2022
88c537d
Update test case expectation for parallel_regression.py
martin-g May 23, 2022
6e52e9d
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 24, 2022
26adefb
Add trailing whitespace as in the generated FINDIFF/of_grad_findiff.csv
martin-g May 24, 2022
c294f42
Add a new array for the values when running the tests on arm64/aarch64
martin-g May 24, 2022
2f05b4a
Add support for special reference_file for aarch64
martin-g May 25, 2022
e1abdb9
Add expectation values for Linux ARM64 (aarch64)
martin-g May 25, 2022
21dc818
Fix the name of 'test_vals' for arrch64 for hybrid_regression_AD.py d…
martin-g May 25, 2022
7620719
Fix the reference_file for pywrapper_translating_naca0012 for x86_64
martin-g May 26, 2022
80c8b61
Update vandv's test expectations for aarch64
martin-g May 26, 2022
5cecc41
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g May 30, 2022
b09c0c9
Update the expected test values for serial_regression on Linux ARM64
martin-g May 30, 2022
6301df5
Test on ARM64
martin-g May 30, 2022
895b3cd
Use newer version of actions/cache
martin-g May 31, 2022
9e25ff5
Update upload and download artifact actions
martin-g May 31, 2022
8e46d8d
Tar/untar the uploaded/downloaded artifacts for faster network IO
martin-g May 31, 2022
e59665e
List the files after 'tar' to see the size of the file before the upl…
martin-g May 31, 2022
c8fcda7
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g Jun 1, 2022
5a040df
Print the contents of the downloaded artifacts
martin-g Jun 1, 2022
77a30f3
Use gzip to compress the install/bin folder before uploading
martin-g Jun 1, 2022
589b771
Fix a typo
martin-g Jun 1, 2022
599649d
Fix 'if' statement syntax
martin-g Jun 1, 2022
3a85d14
Fix the reading of $type variable in Bash shell script
martin-g Jun 1, 2022
6212fb8
Fix the relative path to the untar-ed install/bin folder before copyi…
martin-g Jun 1, 2022
ae3bd78
Fix the ownership of the files created by build-su2 Docker image
martin-g Jun 2, 2022
4c6b822
Mark the Git repo clone as safe because the Docker image clones it with
martin-g Jun 2, 2022
6b03767
Fix the name of steps.vars.outputs.github_ref_underscore
martin-g Jun 2, 2022
114e760
Update some test expectations for tutorials.py and parallel_regressio…
martin-g Jun 2, 2022
ef5e6a8
Fix test_vals and reference_file for aarch64
martin-g Jun 3, 2022
5a5672c
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g Jun 6, 2022
d331d2b
Fix some test expectations for vandv on Linux ARM64
martin-g Jun 6, 2022
658f78a
Update test expectations for tutorials.py and parallel_regression.py …
martin-g Jun 6, 2022
80afb9e
Set Git settings as local.
martin-g Jun 7, 2022
c129c43
Use the new Docker images created after https://github.com/su2code/Do…
martin-g Jun 8, 2022
ecaf0ba
Enable regression.yml workflow for arm64_runner_group branch
martin-g Jun 8, 2022
29e9e02
Remove tasks which are not needed anymore
martin-g Jun 9, 2022
9922985
Update the Docker image to 220609-1143
martin-g Jun 9, 2022
b5b49c3
Revert a change made by mistake
martin-g Jun 9, 2022
95a928a
Remove steps which are not needed anymore
martin-g Jun 9, 2022
81cdf37
Delete the local Git clone after finishing the job
martin-g Jun 10, 2022
2e43ae3
Improve the cleanup command
martin-g Jun 10, 2022
ca8f721
Update test cases
martin-g Jun 10, 2022
c8cd220
Do the pre-cleanup via the Docker container, so that it is executed a…
martin-g Jun 12, 2022
9ff85ae
Debug folder contents
martin-g Jun 12, 2022
61cff4f
Debug 2
martin-g Jun 12, 2022
d59e1d4
Explicitly specify the files/folders to delete
martin-g Jun 12, 2022
e11ae61
Explicitly delete other named folders
martin-g Jun 12, 2022
3350f24
Update ARM64 test values for vandv.py
martin-g Jun 13, 2022
907eddf
Update test expectations for Linux ARM64
martin-g Jun 13, 2022
633d38d
Update test expectations for Linux ARM64
martin-g Jun 13, 2022
922c2d3
Fix the file names of two reference_file's for aarch64.
martin-g Jun 14, 2022
0b16f92
Add logic to TestCase.py to disable tests on specific CPU architecture
martin-g Jun 14, 2022
35ddd4b
Update the Docker image to 220614-1237
martin-g Jun 14, 2022
b0cabaa
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g Jun 15, 2022
92c7df5
Fix the syntax for string formating
martin-g Jun 15, 2022
1205404
Adjust the test data for all test methods
martin-g Jun 15, 2022
23f3081
Fix few more test case expectations for Linux ARM64
martin-g Jun 15, 2022
6e35ce5
Add CSV ref files for serial_regression_AD.py discadj_rht test case
martin-g Jun 15, 2022
8527744
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g Jun 15, 2022
96f1ea5
Update the test data for parallel_regression.py polar_naca0012
martin-g Jun 16, 2022
b0e226d
Add missing reference files for parallel_regression_AD.py
martin-g Jun 16, 2022
f98fc5e
Update test expectations for serial_regression.py polar_naca0012
martin-g Jun 16, 2022
3016550
Update test expectations for serial_regression_AD.py
martin-g Jun 16, 2022
79b1452
Update test expecations for Linux ARM64
martin-g Jun 17, 2022
3986e36
Merge branch 'develop' into build-on-self-hosted-aarch64-runner-sched…
martin-g Jun 17, 2022
4259d32
Fix the test differences for https://github.com/su2code/SU2/runs/6933…
martin-g Jun 17, 2022
72ed62c
Update test expectations for Linux ARM64
martin-g Jun 17, 2022
c0c8523
Update test expectations
martin-g Jun 23, 2022
54d3488
Remove debug related code from regression.yml
martin-g Jun 23, 2022
b700c93
regression.yml workflow should run on x86_64 (ubuntu-latest)
martin-g Jun 27, 2022
6af10a5
Remove the workflow for Linux ARM64
martin-g Jun 27, 2022
077799f
Update test expectation for tutorials.py DAspecies3_primitiveVenturi
martin-g Jun 27, 2022
6fb8a18
Make "Uncompress & move binaries" step less error prone for unit_test…
martin-g Jun 27, 2022
67ae301
Download the artifacts in their own folders
martin-g Jun 27, 2022
50e7124
Make regression.yml a reusable workflow
martin-g Jun 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/regression-arm64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Regression tests running on Linux ARM64

on:
push:
branches:
- 'develop'

jobs:
build_on_arm64:
name: Run the jobs on Linux ARM64
uses: './.github/workflows/regression.yml'
with:
runner: 'ARM64'
121 changes: 95 additions & 26 deletions .github/workflows/regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ on:
branches:
- 'develop'
- 'master'
workflow_call:
inputs:
runner:
description: 'The github runner to use'
default: 'ubuntu-latest'
required: false
type: string

jobs:
build:
Expand Down Expand Up @@ -36,25 +43,37 @@ jobs:
flags: '-Denable-autodiff=true -Denable-normal=false -Dwith-omp=true -Denable-mixedprec=true -Denable-tecio=false --warnlevel=3 --werror'
- config_set: ForwardOMP
flags: '-Denable-directdiff=true -Denable-normal=false -Dwith-omp=true -Denable-mixedprec=true -Denable-tecio=false --warnlevel=3 --werror'
runs-on: ubuntu-latest
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
steps:
- name: Cache Object Files
uses: actions/cache@v1
uses: actions/cache@v3
with:
path: ccache
key: ${{ matrix.config_set }}-${{ github.sha }}
restore-keys: ${{ matrix.config_set }}
- name: Pre Cleanup
uses: docker://ghcr.io/su2code/su2/build-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
- name: Build
uses: docker://su2code/build-su2:20191105
uses: docker://ghcr.io/su2code/su2/build-su2:220614-1237
with:
args: -b ${{github.ref}} -f "${{matrix.flags}}"
- name: Compress binaries
run: tar -zcvf install_bin.tgz install/bin
- name: Upload Binaries
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.config_set }}
path: install/bin
path: install_bin.tgz
- name: Post Cleanup
uses: docker://ghcr.io/su2code/su2/build-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
regression_tests:
runs-on: ubuntu-latest
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
name: Regression Tests
needs: build
strategy:
Expand All @@ -79,22 +98,44 @@ jobs:
- testscript: 'hybrid_regression_AD.py'
tag: OMP
steps:
- name: Download All artifact
uses: actions/download-artifact@v2
- name: Move Binaries
- name: Pre Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
- name: Download All artifacts
uses: actions/download-artifact@v3
- name: Uncompress and Move Binaries
run: |
mkdir -p install/bin
if [ -d "${{format('Base{0}', matrix.tag)}}" ]; then cp -r ${{format('Base{0}', matrix.tag)}}/. install/bin/; fi
if [ -d "${{format('Reverse{0}', matrix.tag)}}" ]; then cp -r ${{format('Reverse{0}', matrix.tag)}}/. install/bin/; fi
if [ -d "${{format('Forward{0}', matrix.tag)}}" ]; then cp -r ${{format('Forward{0}', matrix.tag)}}/. install/bin/; fi
chmod a+x install/bin/*
BIN_FOLDER="$PWD/install/bin"
mkdir -p $BIN_FOLDER
ls -lah $BIN_FOLDER
for type in Base Reverse Forward; do
TYPE_FOLDER="${type}${{matrix.tag}}"
echo "Processing '$TYPE_FOLDER' ..."
if [ -d $TYPE_FOLDER ]; then
pushd $TYPE_FOLDER
ls -lah
tar -zxvf install_bin.tgz
ls -lah install/bin/
cp -r install/bin/* $BIN_FOLDER;
popd;
fi
done
chmod a+x $BIN_FOLDER/*
ls -lahR $BIN_FOLDER
- name: Run Tests in Container
uses: docker://su2code/test-su2:20200303
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
# -t <Tutorials-branch> -c <Testcases-branch>
args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}}
- name: Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
unit_tests:
runs-on: ubuntu-latest
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
name: Unit Tests
needs: build
strategy:
Expand All @@ -109,26 +150,54 @@ jobs:
- testdriver: 'test_driver_DD'
tag: MPI
steps:
- name: Pre Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
- name: Download Base
uses: actions/download-artifact@v1
uses: actions/download-artifact@v3
with:
name: ${{format('Base{0}', matrix.tag)}}
path: ${{format('Base{0}', matrix.tag)}}
- name: Download Reverse
uses: actions/download-artifact@v1
uses: actions/download-artifact@v3
with:
name: ${{format('Reverse{0}', matrix.tag)}}
path: ${{format('Reverse{0}', matrix.tag)}}
- name: Download Forward
uses: actions/download-artifact@v1
uses: actions/download-artifact@v3
with:
name: ${{format('Forward{0}', matrix.tag)}}
- name: Move Binaries
path: ${{format('Forward{0}', matrix.tag)}}
- name: Uncompress and Move Binaries
run: |
mkdir -p install/bin
cp -r ${{format('Base{0}', matrix.tag)}}/. install/bin/
cp -r ${{format('Reverse{0}', matrix.tag)}}/. install/bin/
cp -r ${{format('Forward{0}', matrix.tag)}}/. install/bin/
chmod a+x install/bin/*
ls -lah
BIN_FOLDER="$PWD/install/bin"
mkdir -p $BIN_FOLDER
ls -laH $BIN_FOLDER
for type in Base Reverse Forward; do
TYPE_FOLDER="${type}${{matrix.tag}}"
if [ -d $TYPE_FOLDER ]; then
echo "Processing '$TYPE_FOLDER' ..."
pushd $TYPE_FOLDER
ls -lah
tar -zxvf install_bin.tgz
ls -laH install/bin/
cp -r install/bin/* $BIN_FOLDER;
popd;
else
echo "$TYPE_FOLDER does not exist!"
fi
done
find $BIN_FOLDER -type f -exec chmod a+x '{}' \;
ls -lahR $BIN_FOLDER
- name: Run Unit Tests
uses: docker://su2code/test-su2:20191031
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
entrypoint: install/bin/${{matrix.testdriver}}
- name: Post Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:220614-1237
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
53 changes: 52 additions & 1 deletion TestCases/TestCase.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
from __future__ import print_function, division, absolute_import
import time, os, subprocess, datetime, sys
import difflib
import platform


def print_vals(vals, name="Values"):
Expand Down Expand Up @@ -63,6 +64,9 @@ def __init__(self,tag_in):
self.test_iter = 1
self.ntest_vals = 4
self.test_vals = []
self.test_vals_aarch64 = []
self.cpu_arch = platform.processor()
self.enabled_on_cpu_arch = ["x86_64", "aarch64"]

# These can be optionally varied
self.su2_exec = "SU2_CFD"
Expand All @@ -71,10 +75,14 @@ def __init__(self,tag_in):

# Options for file-comparison tests
self.reference_file = "of_grad.dat.ref"
self.reference_file_aarch64 = ""
self.test_file = "of_grad.dat"

def run_test(self):

if not self.is_enabled():
return True

print('==================== Start Test: %s ===================='%self.tag)
passed = True
exceed_tol = False
Expand Down Expand Up @@ -109,6 +117,8 @@ def run_test(self):
self.cfg_file,
logfilename)

self.adjust_test_data()

# Run SU2
workdir = os.getcwd()
os.chdir(self.cfg_dir)
Expand Down Expand Up @@ -208,6 +218,8 @@ def run_test(self):
if iter_missing:
print('ERROR: The iteration number %d could not be found.'%self.test_iter)

print('CPU architecture=%s' % self.cpu_arch)

if len(self.test_vals) != 0:
print('test_iter=%d' % self.test_iter)

Expand All @@ -225,13 +237,19 @@ def run_test(self):
return passed

def run_filediff(self):

if not self.is_enabled():
return True

print('==================== Start Test: %s ===================='%self.tag)
passed = True
timed_out = False

# Adjust the number of iterations in the config file
self.adjust_iter()

self.adjust_test_data()

# if root, add flag to mpirun
if os.geteuid()==0:
if self.su2_exec.startswith('mpirun'):
Expand Down Expand Up @@ -305,6 +323,7 @@ def run_filediff(self):
else:
passed = False

print('CPU architecture=%s'%self.cpu_arch)
print('test duration: %.2f min'%(running_time/60.0))
print('==================== End Test: %s ====================\n'%self.tag)

Expand All @@ -314,6 +333,9 @@ def run_filediff(self):

def run_opt(self):

if not self.is_enabled():
return True

print('==================== Start Test: %s ===================='%self.tag)
passed = True
exceed_tol = False
Expand All @@ -324,6 +346,8 @@ def run_opt(self):
# Adjust the number of iterations in the config file
self.adjust_opt_iter()

self.adjust_test_data()

# Assemble the shell command to run SU2
logfilename = '%s.log' % os.path.splitext(self.cfg_file)[0]
command = "%s %s > %s 2>&1" % (self.su2_exec, self.cfg_file, logfilename)
Expand Down Expand Up @@ -434,6 +458,9 @@ def run_opt(self):

def run_geo(self):

if not self.is_enabled():
return True

print('==================== Start Test: %s ===================='%self.tag)
passed = True
exceed_tol = False
Expand All @@ -446,6 +473,8 @@ def run_geo(self):
found_twist = False
found_chord = False

self.adjust_test_data()

# if root, add flag to mpirun
if os.geteuid()==0:
if self.su2_exec.startswith('mpirun'):
Expand Down Expand Up @@ -562,14 +591,19 @@ def run_geo(self):
return passed

def run_def(self):


if not self.is_enabled():
return True

print('==================== Start Test: %s ===================='%self.tag)
passed = True
exceed_tol = False
timed_out = False
iter_missing = True
start_solver = True

self.adjust_test_data()

# if root, add flag to mpirun
if os.geteuid()==0:
if self.su2_exec.startswith('mpirun'):
Expand Down Expand Up @@ -760,3 +794,20 @@ def disable_restart(self):
os.chdir(workdir)

return

def is_enabled(self):
is_enabled = self.cpu_arch in self.enabled_on_cpu_arch

if not is_enabled:
print('Ignoring test "%s" because it is not enabled for the current CPU architecture: %s' % (self.tag, self.cpu_arch))

return is_enabled

def adjust_test_data(self):

if self.cpu_arch == 'aarch64':
if len(self.test_vals_aarch64) != 0:
self.test_vals = self.test_vals_aarch64

if len(self.reference_file_aarch64) != 0:
self.reference_file = self.reference_file_aarch64
39 changes: 39 additions & 0 deletions TestCases/cont_adj_euler/naca0012/of_grad_cd_disc_aarch64.dat.ref
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
VARIABLES="VARIABLE" , "GRADIENT" , "FINDIFF_STEP"
0 , -2656.96 , 0.001
1 , -12995.9 , 0.001
2 , -21781.3 , 0.001
3 , -27675.3 , 0.001
4 , -30437.9 , 0.001
5 , -30443.9 , 0.001
6 , -28343.1 , 0.001
7 , -24794.2 , 0.001
8 , -20329.4 , 0.001
9 , -15376.6 , 0.001
10 , -10418.0 , 0.001
11 , -6201.67 , 0.001
12 , -3878.08 , 0.001
13 , -4910.93 , 0.001
14 , -10573.5 , 0.001
15 , -20610.7 , 0.001
16 , -30110.4 , 0.001
17 , -26294.5 , 0.001
18 , -62393.8 , 0.001
19 , -2797.26 , 0.001
20 , -832.067 , 0.001
21 , -668.081 , 0.001
22 , -1773.25 , 0.001
23 , -5718.86 , 0.001
24 , -13717.8 , 0.001
25 , -25699.0 , 0.001
26 , -40061.9 , 0.001
27 , -53729.8 , 0.001
28 , -62415.6 , 0.001
29 , -61293.4 , 0.001
30 , -46505.9 , 0.001
31 , -17841.7 , 0.001
32 , 18183.8 , 0.001
33 , 48447.5 , 0.001
34 , 62322.0 , 0.001
35 , 64139.5 , 0.001
36 , 54568.2 , 0.001
37 , 64856.8 , 0.001
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
VARIABLES="VARIABLE" , "DRAG" , "EFFICIENCY" , "FORCE_X" , "FORCE_Y" , "FORCE_Z" , "LIFT" , "MOMENT_X" , "MOMENT_Y" , "MOMENT_Z" , "SIDEFORCE"
0 , 0.2253591473 , -105.6097088 , 0.2588459007 , -1.5322178 , 0.0 , -1.537499867 , 0.0 , 0.0 , 1.202899757 , 0.0
1 , 0.3835809166 , -173.3502205 , 0.4363886002 , -2.415957492 , 0.0 , -2.424902327 , 0.0 , 0.0 , 1.053347497 , 0.0
2 , 0.5151776249 , -228.9760041 , 0.5835870252 , -3.129538494 , 0.0 , -3.141524632 , 0.0 , 0.0 , 0.6540715539 , 0.0
Loading