diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index abb942b031..1bf8d36b80 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -717,6 +717,13 @@ int cmCTest::ProcessSteps() this->UpdateCTestConfiguration(); this->BlockTestErrorDiagnostics(); + if (this->GetCTestConfiguration("TimeOut").empty()) { + this->SetCTestConfiguration( + "TimeOut", + std::to_string(cmDurationTo(cmCTest::MaxDuration())), + true); + } + int res = 0; cmCTestScriptHandler script(this); script.CreateCMake(); @@ -3260,6 +3267,9 @@ void cmCTest::SetCMakeVariables(cmMakefile& mf) set("CTEST_BUILD_COMMAND", "MakeCommand"); set("CTEST_USE_LAUNCHERS", "UseLaunchers"); + // CTest Test Step + set("CTEST_TEST_TIMEOUT", "TimeOut"); + // CTest Coverage Step set("CTEST_COVERAGE_COMMAND", "CoverageCommand"); set("CTEST_COVERAGE_EXTRA_FLAGS", "CoverageExtraFlags"); diff --git a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake index e1b7b71712..3e30e35c48 100644 --- a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake @@ -630,6 +630,21 @@ run_output_junit() run_cmake_command(invalid-ctest-argument ${CMAKE_CTEST_COMMAND} --not-a-valid-ctest-argument) +block() + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TimeoutDefault) + set(RunCMake_TEST_NO_CLEAN 1) + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + file(WRITE "${RunCMake_TEST_BINARY_DIR}/DartConfiguration.tcl" " +BuildDirectory: ${RunCMake_TEST_BINARY_DIR} +") + file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" " +add_test(test1 \"${CMAKE_COMMAND}\" -E true) +") + run_cmake_command(TimeoutDefault ${CMAKE_CTEST_COMMAND} -V) + run_cmake_command(TimeoutDefault-T-Test ${CMAKE_CTEST_COMMAND} -V -T Test) +endblock() + if(WIN32) block() set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/TimeoutSignalWindows) diff --git a/Tests/RunCMake/CTestCommandLine/TimeoutDefault-T-Test-stdout.txt b/Tests/RunCMake/CTestCommandLine/TimeoutDefault-T-Test-stdout.txt new file mode 100644 index 0000000000..c753544f53 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/TimeoutDefault-T-Test-stdout.txt @@ -0,0 +1,2 @@ +1: Test timeout computed to be: 10000000 +1/1 Test #1: test1[ ] diff --git a/Tests/RunCMake/CTestCommandLine/TimeoutDefault-stdout.txt b/Tests/RunCMake/CTestCommandLine/TimeoutDefault-stdout.txt new file mode 100644 index 0000000000..c753544f53 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/TimeoutDefault-stdout.txt @@ -0,0 +1,2 @@ +1: Test timeout computed to be: 10000000 +1/1 Test #1: test1[ ]