From 39a20a56ddcde1eecd44b32ab0610b579a7ac4eb Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 3 May 2023 10:29:05 -0400 Subject: Tests: Move `CTestTestZeroTimeout` into `RunCMake.CTestTimeout` --- Tests/CMakeLists.txt | 11 ----------- Tests/CTestTestZeroTimeout/CMakeLists.txt | 8 -------- Tests/CTestTestZeroTimeout/CTestConfig.cmake | 4 ---- Tests/CTestTestZeroTimeout/sleep.c | 16 ---------------- Tests/CTestTestZeroTimeout/test.cmake.in | 22 ---------------------- Tests/RunCMake/CMakeLists.txt | 5 ++++- Tests/RunCMake/CTestTimeout/CMakeLists.txt.in | 2 +- Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake | 12 +++++++++++- .../CTestTimeout/ZeroOverridesVar-stdout.txt | 6 ++++++ 9 files changed, 22 insertions(+), 64 deletions(-) delete mode 100644 Tests/CTestTestZeroTimeout/CMakeLists.txt delete mode 100644 Tests/CTestTestZeroTimeout/CTestConfig.cmake delete mode 100644 Tests/CTestTestZeroTimeout/sleep.c delete mode 100644 Tests/CTestTestZeroTimeout/test.cmake.in create mode 100644 Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt (limited to 'Tests') diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index e3b5ec41d8..2fa962eeec 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -3191,17 +3191,6 @@ if(BUILD_TESTING) PASS_REGULAR_EXPRESSION "1/1 Test #1: TestTimeout" DEPENDS CTestTestTimeout WORKING_DIRECTORY ${CMake_BINARY_DIR}/Tests/CTestTestTimeout) - configure_file( - "${CMake_SOURCE_DIR}/Tests/CTestTestZeroTimeout/test.cmake.in" - "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/test.cmake" - @ONLY ESCAPE_QUOTES) - add_test(CTestTestZeroTimeout ${CMAKE_CTEST_COMMAND} - -S "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/test.cmake" -V - --output-log - "${CMake_BINARY_DIR}/Tests/CTestTestZeroTimeout/testOutput.log") - set_tests_properties(CTestTestZeroTimeout PROPERTIES - FAIL_REGULAR_EXPRESSION "\\*\\*\\*Timeout") - configure_file( "${CMake_SOURCE_DIR}/Tests/CTestTestDepends/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTestDepends/test.cmake" diff --git a/Tests/CTestTestZeroTimeout/CMakeLists.txt b/Tests/CTestTestZeroTimeout/CMakeLists.txt deleted file mode 100644 index 51ef80788d..0000000000 --- a/Tests/CTestTestZeroTimeout/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required (VERSION 3.5) -project (CTestTestZeroTimeout) -include (CTest) - -add_executable (Sleep sleep.c) - -add_test (TestExplicitZeroTimeout Sleep) -set_tests_properties(TestExplicitZeroTimeout PROPERTIES TIMEOUT 0) diff --git a/Tests/CTestTestZeroTimeout/CTestConfig.cmake b/Tests/CTestTestZeroTimeout/CTestConfig.cmake deleted file mode 100644 index bd265f9811..0000000000 --- a/Tests/CTestTestZeroTimeout/CTestConfig.cmake +++ /dev/null @@ -1,4 +0,0 @@ -set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT") -set(CTEST_DROP_METHOD "http") -set(CTEST_DROP_SITE "open.cdash.org") -set(CTEST_DROP_LOCATION "/submit.php?project=PublicDashboard") diff --git a/Tests/CTestTestZeroTimeout/sleep.c b/Tests/CTestTestZeroTimeout/sleep.c deleted file mode 100644 index 5d0b89bf7d..0000000000 --- a/Tests/CTestTestZeroTimeout/sleep.c +++ /dev/null @@ -1,16 +0,0 @@ -#if defined(_WIN32) -# include -#else -# include -#endif - -/* sleeps for 5 seconds */ -int main(int argc, char** argv) -{ -#if defined(_WIN32) - Sleep(5000); -#else - sleep(5); -#endif - return 0; -} diff --git a/Tests/CTestTestZeroTimeout/test.cmake.in b/Tests/CTestTestZeroTimeout/test.cmake.in deleted file mode 100644 index e0dbbc614d..0000000000 --- a/Tests/CTestTestZeroTimeout/test.cmake.in +++ /dev/null @@ -1,22 +0,0 @@ -cmake_minimum_required(VERSION 3.5) - -# Settings: -set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTest") -set(CTEST_SITE "@SITE@") -set(CTEST_BUILD_NAME "CTestTest-@BUILDNAME@-ZeroTimeout") - -set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestZeroTimeout") -set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestZeroTimeout") -set(CTEST_CVS_COMMAND "@CVSCOMMAND@") -set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") -set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@") -set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@") -set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") -set(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@") -set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") -set(CTEST_TEST_TIMEOUT 2) - -CTEST_START(Experimental) -CTEST_CONFIGURE(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) -CTEST_BUILD(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) -CTEST_TEST(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res) diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index ada913299b..3007660dee 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -562,7 +562,10 @@ add_RunCMake_test(alias_targets) add_RunCMake_test(InterfaceLibrary) add_RunCMake_test(no_install_prefix) add_RunCMake_test(configure_file) -add_RunCMake_test(CTestTimeout -DTIMEOUT=${CTestTestTimeout_TIME}) +if(CTestTestTimeout_TIME) + set(CTestTimeout_ARGS -DTIMEOUT=${CTestTestTimeout_TIME}) +endif() +add_RunCMake_test(CTestTimeout) add_RunCMake_test(CTestTimeoutAfterMatch) if(CMake_TEST_CUDA) add_RunCMake_test(CUDA_architectures) diff --git a/Tests/RunCMake/CTestTimeout/CMakeLists.txt.in b/Tests/RunCMake/CTestTimeout/CMakeLists.txt.in index 20faa946f8..ee3323c0f9 100644 --- a/Tests/RunCMake/CTestTimeout/CMakeLists.txt.in +++ b/Tests/RunCMake/CTestTimeout/CMakeLists.txt.in @@ -4,7 +4,7 @@ include(CTest) add_executable(TestTimeout TestTimeout.c) -if(NOT TIMEOUT) +if(NOT DEFINED TIMEOUT) set(TIMEOUT 4) endif() target_compile_definitions(TestTimeout PRIVATE TIMEOUT=${TIMEOUT}) diff --git a/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake index 7e96b6da57..e55ba27637 100644 --- a/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake @@ -1,6 +1,6 @@ include(RunCTest) -if(NOT TIMEOUT) +if(NOT DEFINED TIMEOUT) # Give the process time to load and start running. set(TIMEOUT 4) endif() @@ -20,3 +20,13 @@ if(UNIX) run_ctest_timeout(Fork) unset(CASE_CMAKELISTS_SUFFIX_CODE) endif() + +block() + # An explicit zero TIMEOUT test property means "no timeout". + set(TIMEOUT 0) + # The test sleeps for 4 seconds longer than the TIMEOUT value. + # Set a default timeout to less than that so that the test will + # timeout if the zero TIMEOUT does not suppress it. + set(CASE_TEST_PREFIX_CODE "set(CTEST_TEST_TIMEOUT 2)") + run_ctest_timeout(ZeroOverridesVar) +endblock() diff --git a/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt b/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt new file mode 100644 index 0000000000..7192055c3f --- /dev/null +++ b/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt @@ -0,0 +1,6 @@ +Test project [^ +]*/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-build + Start 1: TestTimeout +1/1 Test #1: TestTimeout ...................... Passed +[1-9][0-9.]* sec ++ +100% tests passed, 0 tests failed out of 1 -- cgit v1.2.1 From 3edf7fbb418d0da1e1ef1717b35b828d2003c427 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 4 May 2023 16:25:48 -0400 Subject: ctest: Fix TIMEOUT test property with value 0 with --timeout flag An explicit zero TIMEOUT test property value should not be overridden by the `--timeout` flag. --- Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake | 3 ++- Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt (limited to 'Tests') diff --git a/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake index e55ba27637..a4080e3fac 100644 --- a/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake @@ -8,7 +8,7 @@ endif() function(run_ctest_timeout CASE_NAME) configure_file(${RunCMake_SOURCE_DIR}/TestTimeout.c ${RunCMake_BINARY_DIR}/${CASE_NAME}/TestTimeout.c COPYONLY) - run_ctest(${CASE_NAME}) + run_ctest(${CASE_NAME} ${ARGN}) endfunction() run_ctest_timeout(Basic) @@ -27,6 +27,7 @@ block() # The test sleeps for 4 seconds longer than the TIMEOUT value. # Set a default timeout to less than that so that the test will # timeout if the zero TIMEOUT does not suppress it. + run_ctest_timeout(ZeroOverridesFlag --timeout 2) set(CASE_TEST_PREFIX_CODE "set(CTEST_TEST_TIMEOUT 2)") run_ctest_timeout(ZeroOverridesVar) endblock() diff --git a/Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt b/Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt new file mode 100644 index 0000000000..746bc218f3 --- /dev/null +++ b/Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt @@ -0,0 +1,6 @@ +Test project [^ +]*/Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-build + Start 1: TestTimeout +1/1 Test #1: TestTimeout ...................... Passed +[1-9][0-9.]* sec ++ +100% tests passed, 0 tests failed out of 1 -- cgit v1.2.1