summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake')
-rw-r--r--Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake22
1 files changed, 22 insertions, 0 deletions
diff --git a/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake
new file mode 100644
index 0000000..7e96b6d
--- /dev/null
+++ b/Tests/RunCMake/CTestTimeout/RunCMakeTest.cmake
@@ -0,0 +1,22 @@
+include(RunCTest)
+
+if(NOT TIMEOUT)
+ # Give the process time to load and start running.
+ set(TIMEOUT 4)
+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})
+endfunction()
+
+run_ctest_timeout(Basic)
+
+if(UNIX)
+ string(CONCAT CASE_CMAKELISTS_SUFFIX_CODE [[
+ target_compile_definitions(TestTimeout PRIVATE FORK)
+]])
+ run_ctest_timeout(Fork)
+ unset(CASE_CMAKELISTS_SUFFIX_CODE)
+endif()