From 8f848dbc1fb77d69dd3b0a1fafda924dc6d5fe8d Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 8 Dec 2025 15:16:51 -0500 Subject: [PATCH] Tests/RunCMake/CTestCommandLine: Add case for ctest --rerun-failed Remove the old `CTestTestRerunFailed` test. --- Tests/CMakeLists.txt | 7 ------- Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake | 13 +++++++++++++ .../CTestCommandLine/rerun-failed-result.txt | 1 + .../CTestCommandLine/rerun-failed-stderr.txt | 1 + .../CTestCommandLine/rerun-failed-stdout.txt | 11 +++++++++++ .../RunCMake/CTestCommandLine/rerun-init-result.txt | 1 + .../RunCMake/CTestCommandLine/rerun-init-stderr.txt | 1 + .../RunCMake/CTestCommandLine/rerun-init-stdout.txt | 13 +++++++++++++ 8 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-failed-result.txt create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-failed-stderr.txt create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-failed-stdout.txt create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-init-result.txt create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-init-stderr.txt create mode 100644 Tests/RunCMake/CTestCommandLine/rerun-init-stdout.txt diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 22b99bae7a..558f8614b3 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -3047,13 +3047,6 @@ if(BUILD_TESTING) set_tests_properties(CTestTestTimeout PROPERTIES PASS_REGULAR_EXPRESSION "TestTimeout *\\.+ *\\*\\*\\*Timeout.*TestSleep *\\.+ *Passed.*timeout correctly killed child") - add_test( - NAME CTestTestRerunFailed - COMMAND ${CMAKE_CTEST_COMMAND} --rerun-failed) - set_tests_properties(CTestTestRerunFailed PROPERTIES - PASS_REGULAR_EXPRESSION "1/1 Test #1: TestTimeout" DEPENDS CTestTestTimeout - WORKING_DIRECTORY ${CMake_BINARY_DIR}/Tests/CTestTestTimeout) - configure_file( "${CMake_SOURCE_DIR}/Tests/CTestTestDepends/test.cmake.in" "${CMake_BINARY_DIR}/Tests/CTestTestDepends/test.cmake" diff --git a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake index 0b8226ef68..ede949ae85 100644 --- a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake @@ -104,6 +104,19 @@ endfunction() run_repeat_until_fail_tests(--repeat-until-fail 3) run_repeat_until_fail_tests(--repeat until-fail:3) +block() + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/rerun) + 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}/CTestTestfile.cmake" " +add_test(works \"${CMAKE_COMMAND}\" -E true) +add_test(fails \"${CMAKE_COMMAND}\" -E false) +") + run_cmake_command(rerun-init ${CMAKE_CTEST_COMMAND}) + run_cmake_command(rerun-failed ${CMAKE_CTEST_COMMAND} --rerun-failed) +endblock() + function(run_BadCTestTestfile) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/BadCTestTestfile) set(RunCMake_TEST_NO_CLEAN 1) diff --git a/Tests/RunCMake/CTestCommandLine/rerun-failed-result.txt b/Tests/RunCMake/CTestCommandLine/rerun-failed-result.txt new file mode 100644 index 0000000000..d197c913c2 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-failed-result.txt @@ -0,0 +1 @@ +[^0] diff --git a/Tests/RunCMake/CTestCommandLine/rerun-failed-stderr.txt b/Tests/RunCMake/CTestCommandLine/rerun-failed-stderr.txt new file mode 100644 index 0000000000..8d98f9debd --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-failed-stderr.txt @@ -0,0 +1 @@ +.* diff --git a/Tests/RunCMake/CTestCommandLine/rerun-failed-stdout.txt b/Tests/RunCMake/CTestCommandLine/rerun-failed-stdout.txt new file mode 100644 index 0000000000..b376a7f631 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-failed-stdout.txt @@ -0,0 +1,11 @@ +^Test project [^ +]*/Tests/RunCMake/CTestCommandLine/rerun + Start 2: fails +1/1 Test #2: fails \.+\*\*\*Failed +[0-9\.]+ sec ++ +0% tests passed, 1 tests failed out of 1 ++ +Total Test time \(real\) = +[0-9\.]+ sec ++ +The following tests FAILED: +[ ]+2 - fails \(Failed\)$ diff --git a/Tests/RunCMake/CTestCommandLine/rerun-init-result.txt b/Tests/RunCMake/CTestCommandLine/rerun-init-result.txt new file mode 100644 index 0000000000..d197c913c2 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-init-result.txt @@ -0,0 +1 @@ +[^0] diff --git a/Tests/RunCMake/CTestCommandLine/rerun-init-stderr.txt b/Tests/RunCMake/CTestCommandLine/rerun-init-stderr.txt new file mode 100644 index 0000000000..8d98f9debd --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-init-stderr.txt @@ -0,0 +1 @@ +.* diff --git a/Tests/RunCMake/CTestCommandLine/rerun-init-stdout.txt b/Tests/RunCMake/CTestCommandLine/rerun-init-stdout.txt new file mode 100644 index 0000000000..e1615d2262 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/rerun-init-stdout.txt @@ -0,0 +1,13 @@ +^Test project [^ +]*/Tests/RunCMake/CTestCommandLine/rerun + Start 1: works +1/2 Test #1: works \.+ Passed +[0-9\.]+ sec + Start 2: fails +2/2 Test #2: fails \.+\*\*\*Failed +[0-9\.]+ sec ++ +50% tests passed, 1 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9\.]+ sec ++ +The following tests FAILED: +[ ]+2 - fails \(Failed\)$