summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-05-05 16:43:33 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-05-05 16:43:50 (GMT)
commit250f66acfea5f2842f1bef6bc8ee2d724dc8569e (patch)
tree9595b66bb179652babf203d54d1e7332c1a9d56c /Tests/RunCMake
parent5924630e6d4a383ef76412a6f560fbe852837e50 (diff)
parent0a5aeaf302369ab62f89ab35b0f0fb690f71c05a (diff)
downloadCMake-250f66acfea5f2842f1bef6bc8ee2d724dc8569e.zip
CMake-250f66acfea5f2842f1bef6bc8ee2d724dc8569e.tar.gz
CMake-250f66acfea5f2842f1bef6bc8ee2d724dc8569e.tar.bz2
Merge topic 'ctest-timeout-zero'
0a5aeaf302 cmCTestRunTest: Consolidate test timeout selection logic 426e38cc10 cmCTestRunTest: Adopt decision for starting cmProcess timer 59336b29bd cmCTestRunTest: Remove unnecessary arguments to ForkProcess 07b5087ba7 Help: Document meaning of TIMEOUT test property with value 0 3edf7fbb41 ctest: Fix TIMEOUT test property with value 0 with --timeout flag 39a20a56dd Tests: Move `CTestTestZeroTimeout` into `RunCMake.CTestTimeout` cd4038fe94 cmCTestTestHandler: Use in-class initialization of properties and results Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8455
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r--Tests/RunCMake/CMakeLists.txt5
-rw-r--r--Tests/RunCMake/CTestTimeout/CMakeLists.txt.in2
-rw-r--r--Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake15
-rw-r--r--Tests/RunCMake/CTestTimeout/ZeroOverridesFlag-stdout.txt6
-rw-r--r--Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt6
5 files changed, 30 insertions, 4 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index ada9132..3007660 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 20faa94..ee3323c 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 7e96b6d..a4080e3 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()
@@ -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)
@@ -20,3 +20,14 @@ 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.
+ 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 0000000..746bc21
--- /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
diff --git a/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt b/Tests/RunCMake/CTestTimeout/ZeroOverridesVar-stdout.txt
new file mode 100644
index 0000000..7192055
--- /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