Regression Testing and Continuous Integration
Regression Testing
Nightly regression tests are run on MAESTROeX using the AMReX regression testing framework: https://github.com/amrex-codes/regression_testing/ . We use the nightly approach rather than continuous integration on github because we need to ensure that we test the changes to AMReX and Microphysics together with changes in MAESTROeX.
The basic flow of the regression testing framework is as follows:
check out the
development
branch of MAESTROeX, AMReX, and Microphysicsfor each test we defined:
make realclean
in the build directorybuild the executable with any test-specific options (MPI, network, …)
run the test using the inputs file listed in the test definition
compare zone-by-zone the results of the test to the stored benchmark. Any differences, no matter how small, result in an error and test failure
generate the test results webpage.
Tests are run both at Stony Brook at LBNL and the output is presented here:
If you want to run your own version of the test suite, you can follow
the quickstart in the regression_testing
README. The inputs file used
at Stony Brook can be used as a starting point and is found here:
Continuous Integration
We use Github Actions to run integration tests on the code and to build and deploy the documentation.
Currently, Github Actions runs the clang static analyzer, which finds potential bugs in the code. This is run on pull requests to the MAESTROeX github repo, and are run weekly on the development branch.