From e8467f7117b7e1b33ba9dfcd3c4750e1330d3acb Mon Sep 17 00:00:00 2001 From: "Roscoe A. Bartlett" Date: Tue, 22 Sep 2020 14:04:25 -0600 Subject: [PATCH] Make RUN_SERIAL asserts more clear, reorganize unit tests some (trilinos/Trilinos#7112) Here, I make some of the asserts for the RUN_SERIAL tests hopefully a little more clear (trilinos/Trilinos#7112). As part of this I also reorgainized the unit tests some to group them better. I broke off the RUN_SERIAL tests for TAAT() into thier own function. However, more needs to be done to improve the organization of these tests and make them more independent. (What we really need is a proper unit test harness for CMake code but that will take some work to create.) --- .../core/TestingFunctionMacro_UnitTests.cmake | 458 ++++++++++-------- 1 file changed, 266 insertions(+), 192 deletions(-) diff --git a/test/core/TestingFunctionMacro_UnitTests.cmake b/test/core/TestingFunctionMacro_UnitTests.cmake index 119991648..b1bee36b8 100644 --- a/test/core/TestingFunctionMacro_UnitTests.cmake +++ b/test/core/TestingFunctionMacro_UnitTests.cmake @@ -687,6 +687,10 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) SET(MESSAGE_WRAPPER_UNIT_TEST_MODE TRUE) + # + # Add basic test with and without tracing + # + MESSAGE("Unconditionally add test (no tracing)") TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) UNITTEST_COMPARE_CONST( @@ -722,6 +726,168 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) ) UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) + # + # _ENABLE_TESTS=OFF + # + + MESSAGE("Tests not enabled") + SET(${PACKAGE_NAME}_ENABLE_TESTS OFF) + TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + MESSAGE_WRAPPER_INPUT + "-- PackageA_SomeExec: NOT added test because PackageA_ENABLE_TESTS='OFF'." + ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "" ) + SET(${PACKAGE_NAME}_ENABLE_TESTS ON) + + # + # Test different nubmers and types of arguments + # + + MESSAGE("Add a single basic test with no arguments") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH}" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) + + MESSAGE("Add a single basic test with a single argument") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS arg1 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};arg1" + ) + + MESSAGE("Add a single basic test with a single argument that is '0'") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS 0 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};0" + ) + + MESSAGE("Add a single basic test with a single argument that is 'N'") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS N ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};N" + ) + + MESSAGE("Add a single basic test with two arguments") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS "arg1 arg2" ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};arg1;arg2" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) + + MESSAGE("Add two tests with simple arguments") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS "arg1" "arg2 arg3" + ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN}_0;${PACKEXEN_PATH};arg1;${PACKEXEN}_1;${PACKEXEN_PATH};arg2;arg3" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_0;${PACKEXEN}_1" ) + + MESSAGE("Add a double quoted input argument") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS "--arg1=\"bob and cats\"" ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};--arg1=\"bob and cats\"" + ) + + MESSAGE("Add a double quoted with single quotes input argument") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} ARGS "--arg1=\"'bob' and 'cats'\"" ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${PACKEXEN_PATH};--arg1=\"'bob' and 'cats'\"" + ) + + MESSAGE("Add two tests with different postfixes and arguments") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} + POSTFIX_AND_ARGS_0 pf_arg1 arg1 + POSTFIX_AND_ARGS_1 pf_arg23 arg2 arg3 + ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES + ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN}_pf_arg1;${PACKEXEN_PATH};arg1;${PACKEXEN}_pf_arg23;${PACKEXEN_PATH};arg2;arg3" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_pf_arg1;${PACKEXEN}_pf_arg23" ) + + MESSAGE("Add two tests with different postfixes and arguments with '0' and 'N'") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} + POSTFIX_AND_ARGS_0 pf_arg1 0 + POSTFIX_AND_ARGS_1 pf_arg23 N 0 + ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES + ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN}_pf_arg1;${PACKEXEN_PATH};0;${PACKEXEN}_pf_arg23;${PACKEXEN_PATH};N;0" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_pf_arg1;${PACKEXEN}_pf_arg23" ) + + MESSAGE("Add an executable with no prefix") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} NOEXEPREFIX ARGS arg1 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${EXEN}.exe;arg1" + ) + + MESSAGE("Add an executable with no suffix") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} NOEXESUFFIX ARGS arg1 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN};arg1" + ) + + MESSAGE("Add an executable with no prefix and no suffix") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} NOEXEPREFIX NOEXESUFFIX ARGS arg1 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${EXEN};arg1" + ) + + MESSAGE("Add a test with a different name from the executable") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} NAME SomeOtherName ARGS arg1 ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKAGE_NAME}_SomeOtherName;${PACKEXEN_PATH};arg1" + ) + + MESSAGE("Add a test with with a postfix appended to the executable name") + GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) + TRIBITS_ADD_TEST( ${EXEN} NAME_POSTFIX somePostfix ARGS arg1 + ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "${PACKEXEN}_somePostfix;${PACKEXEN_PATH};arg1" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_somePostfix" ) + + # + # HOST, XHOST, HOSTTYPE, XHOSTTYPE + # + MESSAGE("Test in HOST") SET(${PROJECT_NAME}_HOSTNAME MyHost) TRIBITS_ADD_TEST( ${EXEN} HOST MyHost ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) @@ -830,6 +996,10 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) ) UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) + # + # EXCLUDE_IF_NOT_TRUE + # + MESSAGE("EXCLUDE_IF_NOT_TRUE ") SET(VAR_THAT_IS_TRUE TRUE) TRIBITS_ADD_TEST( ${EXEN} EXCLUDE_IF_NOT_TRUE VAR_THAT_IS_TRUE @@ -888,6 +1058,25 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) ) UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "" ) + MESSAGE("EXCLUDE_IF_NOT_TRUE ") + SET(VAR_THAT_IS_TRUE TRUE) + SET(VAR_THAT_IS_FALSE FALSE) + TRIBITS_ADD_TEST( ${EXEN} EXCLUDE_IF_NOT_TRUE VAR_THAT_IS_TRUE VAR_THAT_IS_FALSE + ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( + MESSAGE_WRAPPER_INPUT + "-- ${PACKEXEN}: NOT added test because EXCLUDE_IF_NOT_TRUE VAR_THAT_IS_FALSE='FALSE'!" + ) + UNITTEST_COMPARE_CONST( + TRIBITS_ADD_TEST_ADD_TEST_INPUT + "" + ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "" ) + + # + # DISABLED, DISABLED_AND_MSG + # + MESSAGE("DISABLED (trace add test)") SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) TRIBITS_ADD_TEST( ${EXEN} @@ -978,9 +1167,9 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "DISABLED;ON") - MESSAGE("DISABLED and then _SET_DISABLED_AND_MSG=false") + MESSAGE("DISABLED input arg and _SET_DISABLED_AND_MSG=false") SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) - SET(${PACKEXEN}_SET_DISABLED_AND_MSG false) + SET(${PACKEXEN}_SET_DISABLED_AND_MSG false) # Ovesrrides DISABLED option to TAT()! TRIBITS_ADD_TEST( ${EXEN} DISABLED "Disabled by default (but this will be re-enabled by var)" ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) @@ -993,25 +1182,9 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1)!" ) UNITTEST_NOT_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT - "DISABLED") - - MESSAGE("_SET_RUN_SERIAL=ON") - SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) - SET(${PACKEXEN}_SET_RUN_SERIAL ON) - TRIBITS_ADD_TEST( ${EXEN} - ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES - "PackageA_SomeExec" ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH}" - ) - UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT - "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1, RUN_SERIAL)!" ) - UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT - "RUN_SERIAL") + "DISABLED") # Make sure DISABLED prop not even set! - MESSAGE("_SET_RUN_SERIAL=ON with NAME_POSTFIX and POSTFIX_AND_ARGS_") + MESSAGE("_SET_DISABLED_AND_MSG with NAME_POSTFIX and POSTFIX_AND_ARGS_") 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") @@ -1028,10 +1201,14 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "DISABLED;ON") - MESSAGE("Set RUN_SERIAL input argument") + # + # RUN_SERIAL + # + + MESSAGE("_SET_RUN_SERIAL=ON") SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) - SET(${PACKEXEN}_SET_RUN_SERIAL "") - TRIBITS_ADD_TEST( ${EXEN} RUN_SERIAL + SET(${PACKEXEN}_SET_RUN_SERIAL ON) + TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "PackageA_SomeExec" ) @@ -1042,12 +1219,11 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1, RUN_SERIAL)!" ) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT - "RUN_SERIAL") - + "RUN_SERIAL;ON") - MESSAGE("Set RUN_SERIAL input argument but set _SET_RUN_SERIAL=OFF") + MESSAGE("Set RUN_SERIAL input option") SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) - SET(${PACKEXEN}_SET_RUN_SERIAL OFF) + SET(${PACKEXEN}_SET_RUN_SERIAL "") TRIBITS_ADD_TEST( ${EXEN} RUN_SERIAL ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES @@ -1057,160 +1233,29 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) "${PACKEXEN};${PACKEXEN_PATH}" ) UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT - "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1)!" ) - UNITTEST_NOT_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT - "RUN_SERIAL") + "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1, RUN_SERIAL)!" ) + UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT + "RUN_SERIAL;ON") - MESSAGE("EXCLUDE_IF_NOT_TRUE ") - SET(VAR_THAT_IS_TRUE TRUE) - SET(VAR_THAT_IS_FALSE FALSE) - TRIBITS_ADD_TEST( ${EXEN} EXCLUDE_IF_NOT_TRUE VAR_THAT_IS_TRUE VAR_THAT_IS_FALSE + MESSAGE("Set RUN_SERIAL input option but set _SET_RUN_SERIAL=OFF") + SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) + SET(${PACKEXEN}_SET_RUN_SERIAL OFF) # Overrides the input option RUN_SERIAL! + TRIBITS_ADD_TEST( ${EXEN} RUN_SERIAL ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( - MESSAGE_WRAPPER_INPUT - "-- ${PACKEXEN}: NOT added test because EXCLUDE_IF_NOT_TRUE VAR_THAT_IS_FALSE='FALSE'!" - ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "" ) - - MESSAGE("Add a single basic test with no arguments") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) + UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES + "PackageA_SomeExec" ) UNITTEST_COMPARE_CONST( TRIBITS_ADD_TEST_ADD_TEST_INPUT "${PACKEXEN};${PACKEXEN_PATH}" ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) - - MESSAGE("Add a single basic test with a single argument") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS arg1 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};arg1" - ) - - MESSAGE("Add a single basic test with a single argument that is '0'") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS 0 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};0" - ) - - MESSAGE("Add a single basic test with a single argument that is 'N'") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS N ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};N" - ) - - MESSAGE("Add a single basic test with two arguments") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS "arg1 arg2" ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};arg1;arg2" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}" ) - - MESSAGE("Add two tests with simple arguments") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS "arg1" "arg2 arg3" - ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN}_0;${PACKEXEN_PATH};arg1;${PACKEXEN}_1;${PACKEXEN_PATH};arg2;arg3" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_0;${PACKEXEN}_1" ) - - MESSAGE("Add a double quoted input argument") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS "--arg1=\"bob and cats\"" ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};--arg1=\"bob and cats\"" - ) - - MESSAGE("Add a double quoted with single quotes input argument") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} ARGS "--arg1=\"'bob' and 'cats'\"" ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${PACKEXEN_PATH};--arg1=\"'bob' and 'cats'\"" - ) - - MESSAGE("Add two tests with different postfixes and arguments") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} - POSTFIX_AND_ARGS_0 pf_arg1 arg1 - POSTFIX_AND_ARGS_1 pf_arg23 arg2 arg3 - ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES - ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN}_pf_arg1;${PACKEXEN_PATH};arg1;${PACKEXEN}_pf_arg23;${PACKEXEN_PATH};arg2;arg3" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_pf_arg1;${PACKEXEN}_pf_arg23" ) - - MESSAGE("Add two tests with different postfixes and arguments with '0' and 'N'") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} - POSTFIX_AND_ARGS_0 pf_arg1 0 - POSTFIX_AND_ARGS_1 pf_arg23 N 0 - ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES - ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN}_pf_arg1;${PACKEXEN_PATH};0;${PACKEXEN}_pf_arg23;${PACKEXEN_PATH};N;0" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_pf_arg1;${PACKEXEN}_pf_arg23" ) - - MESSAGE("Add an executable with no prefix") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} NOEXEPREFIX ARGS arg1 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${EXEN}.exe;arg1" - ) - - MESSAGE("Add an executable with no suffix") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} NOEXESUFFIX ARGS arg1 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${PACKEXEN};arg1" - ) - - MESSAGE("Add an executable with no prefix and no suffix") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} NOEXEPREFIX NOEXESUFFIX ARGS arg1 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN};${CMAKE_CURRENT_BINARY_DIR}/${EXEN};arg1" - ) - - MESSAGE("Add a test with a different name from the executable") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} NAME SomeOtherName ARGS arg1 ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKAGE_NAME}_SomeOtherName;${PACKEXEN_PATH};arg1" - ) + UNITTEST_COMPARE_CONST( MESSAGE_WRAPPER_INPUT + "-- PackageA_SomeExec: Added test (BASIC, PROCESSORS=1)!" ) + UNITTEST_NOT_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT + "RUN_SERIAL") # Make sure that RUN_SERIAL prop not even set! - MESSAGE("Add a test with with a postfix appended to the executable name") - GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) - TRIBITS_ADD_TEST( ${EXEN} NAME_POSTFIX somePostfix ARGS arg1 - ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "${PACKEXEN}_somePostfix;${PACKEXEN_PATH};arg1" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "${PACKEXEN}_somePostfix" ) + # + # DIRECTORY + # MESSAGE("Add a test with the relative directory overridden") GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) @@ -1228,19 +1273,9 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_BASIC) "${PACKEXEN};/some/abs/path/${PACKEXEN}.exe;arg1" ) - MESSAGE("Tests not enabled") - SET(${PACKAGE_NAME}_ENABLE_TESTS OFF) - TRIBITS_ADD_TEST( ${EXEN} ADDED_TESTS_NAMES_OUT ${EXEN}_TEST_NAMES ) - UNITTEST_COMPARE_CONST( - MESSAGE_WRAPPER_INPUT - "-- PackageA_SomeExec: NOT added test because PackageA_ENABLE_TESTS='OFF'." - ) - UNITTEST_COMPARE_CONST( - TRIBITS_ADD_TEST_ADD_TEST_INPUT - "" - ) - UNITTEST_COMPARE_CONST( ${EXEN}_TEST_NAMES "" ) - SET(${PACKAGE_NAME}_ENABLE_TESTS ON) + # + # _EXTRA_ARGS + # MESSAGE("Test _EXTRA_ARGS with on ARGS") SET(${PACKEXEN}_EXTRA_ARGS "--extra_arg1;something;-extra_arg2;-R") @@ -1956,6 +1991,10 @@ 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}" ) + # + # RUN_SERIAL + # + MESSAGE("_SET_RUN_SERIAL=ON with MPI enabled") SET(${PACKEXEN}_MPI_1_SET_RUN_SERIAL ON) GLOBAL_SET(TRIBITS_ADD_TEST_ADD_TEST_INPUT) @@ -1992,9 +2031,13 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_COMM) "${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" ) + # + # DISABLED, DISABLED_AND_MSG + # + MESSAGE("_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_RUN_SERIAL "") # Turn off for DISABLED tests 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) @@ -2013,7 +2056,6 @@ FUNCTION(UNITTEST_TRIBITS_ADD_TEST_COMM) MESSAGE("_SET_DISABLED_AND_MSG with NAME_POSTFIX, POSTFIX_AND_ARGS_ 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 @@ -3586,6 +3628,10 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "${PACKAGE_NAME}_TAAT_mpi_cmnd_0_cmnd_1;PROPERTIES;PROCESSORS;1") + # + # EXCLUDE_IF_NOT_TRUE + # + MESSAGE("***\n*** EXCLUDE_IF_NOT_TRUE \n***") SET(VAR_THAT_IS_TRUE1 TRUE) SET(VAR_THAT_IS_TRUE2 TRUE) @@ -3637,6 +3683,10 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "") + # + # DISABLED, DISABLED_AND_MSG + # + MESSAGE("***\n*** DISABLED (trace add test on)\n***") TRIBITS_ADD_ADVANCED_TEST_UNITTEST_RESET() TRIBITS_ADD_ADVANCED_TEST( TAAT_mpi_cmnd_0_cmnd_1 @@ -3706,6 +3756,29 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) UNITTEST_NOT_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "DISABLED") +ENDFUNCTION() + + +FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_RUN_SERIAL) + + MESSAGE("\n***") + MESSAGE("*** Testing excluding TRIBITS_ADD_ADVANCED_TEST(...) with RUN_SERIAL") + MESSAGE("***\n") + + # Needed by TRIBITS_ADD_TEST(...) + SET(PACKAGE_NAME PackageA) + SET(${PACKAGE_NAME}_ENABLE_TESTS ON) + + # Turn on tracing for the rest of the tests! + SET(${PROJECT_NAME}_TRACE_ADD_TEST ON) + SET(MESSAGE_WRAPPER_UNIT_TEST_MODE TRUE) + SET(TRIBITS_ADD_ADVANCED_TEST_SKIP_SCRIPT TRUE) + SET(TRIBITS_SET_TEST_PROPERTIES_CAPTURE_INPUT ON) + + # Used locally + SET(EXEN SomeExec) + SET(PACKEXEN ${PACKAGE_NAME}_${EXEN}.exe) + MESSAGE("***\n*** _SET_RUN_SERIAL=ON\n***") TRIBITS_ADD_ADVANCED_TEST_UNITTEST_RESET() SET(${PACKAGE_NAME}_TAAT_mpi_cmnd_0_cmnd_1_SET_RUN_SERIAL ON) @@ -3717,7 +3790,7 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "RUN_SERIAL;ON") - MESSAGE("***\n*** Set RUN_SERIAL argument\n***") + MESSAGE("***\n*** Set RUN_SERIAL input option\n***") TRIBITS_ADD_ADVANCED_TEST_UNITTEST_RESET() SET(${PACKAGE_NAME}_TAAT_mpi_cmnd_0_cmnd_1_SET_RUN_SERIAL "") TRIBITS_ADD_ADVANCED_TEST( TAAT_mpi_cmnd_0_cmnd_1 RUN_SERIAL @@ -3728,7 +3801,7 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) UNITTEST_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT "RUN_SERIAL;ON") - MESSAGE("***\n*** Set RUN_SERIAL input argument but set _SET_RUN_SERIAL=OFF\n***") + MESSAGE("***\n*** Set RUN_SERIAL input option but set _SET_RUN_SERIAL=OFF\n***") TRIBITS_ADD_ADVANCED_TEST_UNITTEST_RESET() SET(${PACKAGE_NAME}_TAAT_mpi_cmnd_0_cmnd_1_SET_RUN_SERIAL OFF) TRIBITS_ADD_ADVANCED_TEST( TAAT_mpi_cmnd_0_cmnd_1 RUN_SERIAL @@ -3737,7 +3810,7 @@ FUNCTION(UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES) "-- PackageA_TAAT_mpi_cmnd_0_cmnd_1: Added test (BASIC, PROCESSORS=1)!" ) UNITTEST_COMPARE_CONST(TRIBITS_ADD_ADVANCED_TEST_NUM_CMNDS "2") UNITTEST_NOT_HAS_SUBSTR_CONST(TRIBITS_SET_TEST_PROPERTIES_INPUT - "RUN_SERIAL;ON") + "RUN_SERIAL") # Make sure RUN_SERIAL prop not even set! ENDFUNCTION() @@ -4231,6 +4304,7 @@ UNITTEST_TRIBITS_ADD_ADVANCED_TEST_PROPERTIES() UNITTEST_TRIBITS_ADD_TEST_CUDA_GPU_CTEST_RESOURCES() UNITTEST_TRIBITS_ADD_ADVANCED_TEST_COPY_FILES_TO_TEST_DIR() UNITTEST_TRIBITS_ADD_ADVANCED_TEST_EXCLUDES() +UNITTEST_TRIBITS_ADD_ADVANCED_TEST_RUN_SERIAL() MESSAGE("\n***") MESSAGE("*** Testing TRIBITS_ADD_EXECUTABLE_AND_TEST(...)")