Skip to content

Commit

Permalink
Add test cases for TPL_ENABLE_MPI=ON and other test name modifications (
Browse files Browse the repository at this point in the history
TriBITSPub#173, trilinos/Trilinos#7112)

Turns out that TRIBITS_ADD_TEST() had bad logic for reading in
<fullTestName>_SET_RUN_SERIAL and <fullTestName>_SET_DISABLED_AND_MSG
when the test name is modifed by setting TPL_ENABLE_MPI=ON or passing in
NAME_POSTFIX or POSTFIX_AND_ARGS_<IDX> arguments.

These are obvious use cases that I missed and they are needed for
trilinos/Trilinos#7112 and in general, obviously.

This means that <fullTestName>_SET_DISABLED_AND_MSG was not implemented
correctly for TRIBITS_ADD_TEST() as part of TriBITSPub#173.  Turns out the driving
use case for that was using TRIBITS_ADD_ADVACED_TEST() so we never noticed
the bug.

The next commit will fix this (which I already prototyped).
  • Loading branch information
bartlettroscoe committed Sep 18, 2020
1 parent c42eb66 commit a648f77
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 2 deletions.
2 changes: 1 addition & 1 deletion test/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ TRIBITS_ADD_ADVANCED_TEST( TestingFunctionMacro_UnitTests
-D${PROJECT_NAME}_TRIBITS_DIR=${${PROJECT_NAME}_TRIBITS_DIR}
-P "${CMAKE_CURRENT_SOURCE_DIR}/TestingFunctionMacro_UnitTests.cmake"
PASS_REGULAR_EXPRESSION_ALL
"Final UnitTests Result: num_run = 641"
"Final UnitTests Result: num_run = 665"
"Final UnitTests Result: PASSED"
)

Expand Down
111 changes: 110 additions & 1 deletion test/core/TestingFunctionMacro_UnitTests.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -961,6 +961,23 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"DISABLED;ON")

MESSAGE("<fullTestName>_SET_DISABLED_AND_MSG=<msg> with NAME_POSTFIX and POSTFIX_AND_ARGS_<IDX>")
SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON)
SET(THIS_TEST_NAME ${PACKEXEN}_mypostfix_argpostfix0)
SET(${THIS_TEST_NAME}_SET_DISABLED_AND_MSG "Disabled because of F and G")
TRIBITS_ADD_TEST( ${EXEN} NAME_POSTFIX mypostfix POSTFIX_AND_ARGS_0 argpostfix0 arg0
ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES )
UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES
"${THIS_TEST_NAME}" )
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${THIS_TEST_NAME};${PACKEXEN_PATH};arg0"
)
UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT
"-- ${THIS_TEST_NAME}: Added test (BASIC, PROCESSORS=1, DISABLED)!;-- => Reason DISABLED: Disabled because of F and G")
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"DISABLED;ON")

MESSAGE("DISABLED <msg> and then <fullTestName>_SET_DISABLED_AND_MSG=false")
SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON)
SET(${PACKEXEN}_SET_DISABLED_AND_MSG false)
Expand Down Expand Up @@ -994,6 +1011,23 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"RUN_SERIAL")

MESSAGE("<fullTestName>_SET_RUN_SERIAL=ON with NAME_POSTFIX and POSTFIX_AND_ARGS_<IDX>")
SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON)
SET(THIS_TEST_NAME ${PACKEXEN}_mypostfix_argpostfix0)
SET(${THIS_TEST_NAME}_SET_DISABLED_AND_MSG "Disabled because of H and I")
TRIBITS_ADD_TEST( ${EXEN} NAME_POSTFIX mypostfix POSTFIX_AND_ARGS_0 argpostfix0 arg0
ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES )
UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES
"${THIS_TEST_NAME}" )
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${THIS_TEST_NAME};${PACKEXEN_PATH};arg0"
)
UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT
"-- ${THIS_TEST_NAME}: Added test (BASIC, PROCESSORS=1, DISABLED)!;-- => Reason DISABLED: Disabled because of H and I" )
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"DISABLED;ON")

MESSAGE("Set RUN_SERIAL input argument")
SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON)
SET(${PACKEXEN}_SET_RUN_SERIAL "")
Expand Down Expand Up @@ -1922,6 +1956,81 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_COMM)
UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES
"${PACKEXEN}_mypostfix3_0_MPI_${MPI_EXEC_DEFAULT_NUMPROCS};${PACKEXEN}_mypostfix3_1_MPI_${MPI_EXEC_DEFAULT_NUMPROCS}" )

MESSAGE("<fullTestName>_SET_RUN_SERIAL=ON with MPI enabled")
SET(${PACKEXEN}_MPI_1_SET_RUN_SERIAL ON)
GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT)
TRIBITS_ADD_TEST( ${EXEN} NUM_MPI_PROCS 1)
UNITTEST_COMPARE_CONST(
MESSAGE_WRAPPER_INPUT
"-- ${PACKEXEN}_MPI_1: Added test (BASIC, NUM_MPI_PROCS=1, PROCESSORS=1, RUN_SERIAL)!"
)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"${PACKEXEN}_MPI_1;PROPERTIES;PROCESSORS;1")
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"RUN_SERIAL;ON")
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${PACKEXEN}_MPI_1;${MPI_EXEC};${MPI_EXEC_PRE_NUMPROCS_FLAGS};${MPI_EXEC_NUMPROCS_FLAG};1;${MPI_EXEC_POST_NUMPROCS_FLAGS};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN}.exe"
)

MESSAGE("<fullTestName>_SET_RUN_SERIAL=ON with NAME_POSTFIX, POSTFIX_AND_ARGS_<IDX> and MPI enabled")
SET(THIS_TEST_NAME ${PACKEXEN}_mypostfix3_argpostfix0_MPI_1)
SET(${THIS_TEST_NAME}_SET_RUN_SERIAL ON)
GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT)
TRIBITS_ADD_TEST( ${EXEN} NUM_MPI_PROCS 1
NAME_POSTFIX mypostfix3 POSTFIX_AND_ARGS_0 argpostfix0 arg0)
UNITTEST_COMPARE_CONST(
MESSAGE_WRAPPER_INPUT
"-- ${THIS_TEST_NAME}: Added test (BASIC, NUM_MPI_PROCS=1, PROCESSORS=1, RUN_SERIAL)!"
)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"${THIS_TEST_NAME};PROPERTIES;PROCESSORS;1")
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"RUN_SERIAL;ON")
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${THIS_TEST_NAME};${MPI_EXEC};${MPI_EXEC_PRE_NUMPROCS_FLAGS};${MPI_EXEC_NUMPROCS_FLAG};1;${MPI_EXEC_POST_NUMPROCS_FLAGS};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN}.exe;arg0"
)

MESSAGE("<fullTestName>_SET_DISABLED_AND_MSG with MPI enabled")
SET(THIS_TEST_NAME ${PACKEXEN}_MPI_1)
SET(${THIS_TEST_NAME}_SET_RUN_SERIAL "")
SET(${THIS_TEST_NAME}_SET_DISABLED_AND_MSG "Disabled because of DAM and MPI")
GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT)
TRIBITS_ADD_TEST( ${EXEN} NUM_MPI_PROCS 1)
UNITTEST_COMPARE_CONST(
MESSAGE_WRAPPER_INPUT
"-- ${THIS_TEST_NAME}: Added test (BASIC, NUM_MPI_PROCS=1, PROCESSORS=1, DISABLED)!;-- => Reason DISABLED: Disabled because of DAM and MPI"
)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"${THIS_TEST_NAME};PROPERTIES;PROCESSORS;1")
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"DISABLED;ON")
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${THIS_TEST_NAME};${MPI_EXEC};${MPI_EXEC_PRE_NUMPROCS_FLAGS};${MPI_EXEC_NUMPROCS_FLAG};1;${MPI_EXEC_POST_NUMPROCS_FLAGS};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN}.exe"
)

MESSAGE("<fullTestName>_SET_DISABLED_AND_MSG with NAME_POSTFIX, POSTFIX_AND_ARGS_<IDX> and MPI enabled")
SET(THIS_TEST_NAME ${PACKEXEN}_mypostfix4_argpostfix0_MPI_1)
SET(${THIS_TEST_NAME}_SET_RUN_SERIAL "")
SET(${THIS_TEST_NAME}_SET_DISABLED_AND_MSG "Disabled because of DAM, NP, PAA, and MPI")
GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT)
TRIBITS_ADD_TEST( ${EXEN} NUM_MPI_PROCS 1
NAME_POSTFIX mypostfix4 POSTFIX_AND_ARGS_0 argpostfix0 arg0)
UNITTEST_COMPARE_CONST(
MESSAGE_WRAPPER_INPUT
"-- ${THIS_TEST_NAME}: Added test (BASIC, NUM_MPI_PROCS=1, PROCESSORS=1, DISABLED)!;-- => Reason DISABLED: Disabled because of DAM, NP, PAA, and MPI"
)
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"${THIS_TEST_NAME};PROPERTIES;PROCESSORS;1")
UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT
"DISABLED;ON")
UNITTEST_COMPARE_CONST(
TRIBITS_ADD_TEST_ADD_TEST_INPUT
"${THIS_TEST_NAME};${MPI_EXEC};${MPI_EXEC_PRE_NUMPROCS_FLAGS};${MPI_EXEC_NUMPROCS_FLAG};1;${MPI_EXEC_POST_NUMPROCS_FLAGS};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN}.exe;arg0"
)

ENDFUNCTION()


Expand Down Expand Up @@ -4147,4 +4256,4 @@ MESSAGE("*** Determine final result of all unit tests")
MESSAGE("***\n")

# Pass in the number of expected tests that must pass!
UNITTEST_FINAL_RESULT(641)
UNITTEST_FINAL_RESULT(665)

0 comments on commit a648f77

Please sign in to comment.