scronjob shows the scrontab for running the MESA test suite. This is a recurring slurm job, which replaces the previous crontab.
- Every 5 minutes, we call
launch.sh, which logs a small amount of information about my current overall cluster usage, and then launches MESA test suite runs by callingrunMesaTest.sh - Once per night around 2am, we call runMesaOptional.sh, which just submits the latest commit at the head of
mainand runs all tests with the optional inlists included.
runMesaTest.sh is a fairly lightweight launching script that sets up the other jobs. It simply sets the relevant environment variables (see mesa_test.sh), fetches the latest commits, and submits installation jobs for any commit that does not yet exist in the $MESA_LOG directory.
Each commit that needs to be installed gets submitted as a slurm job running test-mesa.sh. This does a full MESA checkout and installation, and then submits job arrays for the test suites. The array index ($SLURM_ARRAY_TASK_ID) tells the following scripts which entry from do1_test_source to run.
star.shruns an array for all the tests instar/test_suite/do1_test_sourcebinary.shruns an array for all the tests inbinary/test_suite/do1_test_sourceastero.shruns an array for all the tests inastero/test_suite/do1_test_source
cleanup.sh runs after all the test suite jobs have finished. This copies the test suite output (*/test_suite/*/*.txt files) into the relevant $MESA_LOG directories, and then deletes MESA installation for that commit.
These scripts require that the mesa_test ruby gem is installed and configured to be ready to submit to MESA testhub.
mesa_test.sh contains several important environment variables that help the automated testing scripts run:
$MESA_GIT: the location of the git mirror that themesa_testgem is configured to use.$MESA_LOG: the location where output from test suite runs gets stored. Crucially, this is the location that gets checked to see if a commit has already been run, or still needs to be run.$MESA_TMP: the location that temporary MESA installations are checked out to and installed in.