diff --git a/ci/run_gw_ci.sh b/ci/run_gw_ci.sh index 8a6f2a2e..47f74aa0 100755 --- a/ci/run_gw_ci.sh +++ b/ci/run_gw_ci.sh @@ -77,7 +77,7 @@ fi (cd gdas && ctest -N) >> log.gdasapp_tests rm -rf log.ctest -ctest -R gdasapp --output-on-failure &>> log.ctest +ctest -R gdasapp -L "gw-ci" --output-on-failure &>> log.ctest ctest_status=$? npassed=$(cat log.ctest | grep "tests passed") if [ $ctest_status -eq 0 ]; then diff --git a/test/gw-ci/CMakeLists.txt b/test/gw-ci/CMakeLists.txt index dfd2a112..3b6b971c 100644 --- a/test/gw-ci/CMakeLists.txt +++ b/test/gw-ci/CMakeLists.txt @@ -1,10 +1,10 @@ # Function that generates the 1/2 cycle forecast and DA tasks -function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR TASK_LIST) +function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR TASK_LIST NMEM) # Prepare the COMROOT and EXPDIR for the cycling ctests add_test(NAME ${pslot} COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/create_exp.sh ${YAML_PATH} ${pslot} ${HOMEgfs} ${RUNTESTS}" WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${pslot} PROPERTIES LABELS "manual") + set_tests_properties(${pslot} PROPERTIES LABELS "gw-ci") # Get the 1/2 cycle and full cycle's dates execute_process( @@ -22,7 +22,16 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T add_test(NAME ${pslot}_gdasfcst_${HALF_CYCLE} COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} gdasfcst ${HALF_CYCLE}" WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${pslot}_gdasfcst_${HALF_CYCLE} PROPERTIES LABELS "manual") + set_tests_properties(${pslot}_gdasfcst_${HALF_CYCLE} PROPERTIES LABELS "gw-ci") + + # 1/2 cycle enkfgdasfcst + message(STATUS "preparing 1/2 cycle ensemble forecast for ${pslot} ctest") + foreach(mem RANGE ${NMEM}) + add_test(NAME ${pslot}_ensemble_${HALF_CYCLE}_${mem} + COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} enkfgdasfcst_00${mem} ${HALF_CYCLE}" + WORKING_DIRECTORY ${RUNTESTS}) + set_tests_properties(${pslot}_enkfgdasfcst_${mem}_${HALF_CYCLE} PROPERTIES LABELS "gw-ci") + endforeach() # Select the list of tasks to run for the full cycle message(STATUS "Tasks ${TASK_LIST}") @@ -32,7 +41,7 @@ function(add_cycling_tests pslot YAML_PATH HOMEgfs RUNTESTS PROJECT_SOURCE_DIR T add_test(NAME ${pslot}_${task}_${FULL_CYCLE} COMMAND /bin/bash -c "${PROJECT_SOURCE_DIR}/test/gw-ci/run_exp.sh ${pslot} ${task} ${FULL_CYCLE}" WORKING_DIRECTORY ${RUNTESTS}) - set_tests_properties(${pslot}_${task}_${FULL_CYCLE} PROPERTIES LABELS "manual") + set_tests_properties(${pslot}_${task}_${FULL_CYCLE} PROPERTIES LABELS "gw-ci") endforeach() endfunction() @@ -52,21 +61,21 @@ set(TASK_LIST "gdasocnanalchkpt" "gdasocnanalpost" ) -add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") +add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}" 0) # Aero-Land DA, C96 # ----------------- set(pslot "Aero-Snow-3DVAR-C96") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C96_atmaerosnowDA.yaml) set(TASK_LIST) # empty list for now -add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") +add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}" 0) # Atm DA, C96/C48 # --------------- set(pslot "Atm-hyb-C96C48") set(YAML_PATH ${HOMEgfs}/ci/cases/pr/C96C48_ufs_hybatmDA.yaml) set(TASK_LIST) # empty list for now -add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") +add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}" 2) # GFSv17, 3DVAR prototype # ----------------------- @@ -83,4 +92,4 @@ set(TASK_LIST "gdasprep" "gdasanal" ) -add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}") +add_cycling_tests(${pslot} ${YAML_PATH} ${HOMEgfs} ${RUNTESTS} ${PROJECT_SOURCE_DIR} "${TASK_LIST}" 0)