-
Notifications
You must be signed in to change notification settings - Fork 5
UFSCOMP Test Procedure
Ufuk Turunçoğlu edited this page May 17, 2019
·
3 revisions
This document aims to give brief description about the test procudure of UFSCOMP development.
- Developer changes the code in her/his sandbox
- Pushes all changes to the remote repository using seperate branches
- Runs test suite and compare with beaseline
- Submits PR with all hashes/tags linked with PR
- Put name of UFSCOMP branch to PR
- Put hashes of each component to the PR description if branch is not used
- Put baseline directory into PR description and add extra information such as
- Bit-to-bit
- Round-off
- namelist changes (as diff output)
- etc.
-
Create same working environment with PR
-
Clone UFSCOMP
git clone https://github.com/ESCOMP/UFSCOMP.git
-
Checkout UFSCOMP branch or use hash informations that are given in PR description.
cd UFSCOMP git checkout app_cesm-cmeps
-
Checkout Externals
./manage_externals/checkout_externals
-
Merge PR with current tag/hash of cime
cd cime git checkout nuopc-cmeps git merge [name of branch that points current PR]
-
-
Run test suite
-
CESM
cd cime/scripts # Cheyenne: qcmd -l walltime=4:00:00 -- ./create_test --xml-testlist ../src/drivers/nuopc/cime_config/testdefs/testlist_drv.xml --xml-machine cheyenne --xml-category nuopc --compare may1intel19 --baseline-root /glade/p/cesmdata/cseg/nuopc_baselines
Note: don't forget to point correct baseline for comparison
-
FV3GFS
Currently, there is no test suite for FV3GFS application but creating new test and running it can be used to test PR
cd cime/scripts # Cheyenne: ./create_newcase --compset UFS_S2S --res C384_t025 --case ufs.s2s.c384_t025.jan --driver nuopc --run-unsupported cd ufs.s2s.c384_t025.jan/ ./case.setup ./xmlchange DOUT_S=FALSE ./xmlchange STOP_N=1 ./xmlchange RUN_REFDATE=2012-01-01 ./xmlchange RUN_STARTDATE=2012-01-01 ./xmlchange JOB_WALLCLOCK_TIME=00:30:00 qcmd -- ./case.build ./case.submit
- Testing NUOPC and sub-set of MCT tests
- Testing SMS / ERS / Threading tests (after threading works)
- Testing both optimized and debug versions of both CESM and FV3GFS applications (it requires to introduce new indicator such as _D)
-
-
If it is necessary, create baseline under CESMDATA root
- Tester generates the baseline
- Only keep last three baseline
-
If tests fail
- comment issue in PR
- let developer fix the issue
-
If tests pass
- merge PR (currently just for CIME)
-
Modify External and merge with UFSCOMP app-cesm-cmeps
- tag it
- update PR with new UFSCOMP app-cesm-cmeps tag or hash
- update PR and add new basline information, if it is necessary