From a30cf4a66ac5a56d16807402400eeb69dbad5ae4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Mar 2025 11:09:51 -0500 Subject: [PATCH] Tests/RunCMake/Configure: Split ninja-specific RerunCMake case Split the test case from commit f50fb77a4f (Ninja: Regenerate when test or install scripts are missing, 2024-10-29, v4.0.0-rc1~516^2) into a dedicated case. --- .../Configure/RerunCMake-build5-check.cmake | 4 ---- .../RerunCMakeNinja-build1-check.cmake | 4 ++++ .../RunCMake/Configure/RerunCMakeNinja.cmake | 4 ++++ Tests/RunCMake/Configure/RunCMakeTest.cmake | 23 +++++++++++++------ 4 files changed, 24 insertions(+), 11 deletions(-) delete mode 100644 Tests/RunCMake/Configure/RerunCMake-build5-check.cmake create mode 100644 Tests/RunCMake/Configure/RerunCMakeNinja-build1-check.cmake create mode 100644 Tests/RunCMake/Configure/RerunCMakeNinja.cmake diff --git a/Tests/RunCMake/Configure/RerunCMake-build5-check.cmake b/Tests/RunCMake/Configure/RerunCMake-build5-check.cmake deleted file mode 100644 index d740671b07..0000000000 --- a/Tests/RunCMake/Configure/RerunCMake-build5-check.cmake +++ /dev/null @@ -1,4 +0,0 @@ -file(READ ${stamp} content) -if(NOT content STREQUAL 5) - set(RunCMake_TEST_FAILED "Expected stamp '5' but got: '${content}'") -endif() diff --git a/Tests/RunCMake/Configure/RerunCMakeNinja-build1-check.cmake b/Tests/RunCMake/Configure/RerunCMakeNinja-build1-check.cmake new file mode 100644 index 0000000000..3fb557fba6 --- /dev/null +++ b/Tests/RunCMake/Configure/RerunCMakeNinja-build1-check.cmake @@ -0,0 +1,4 @@ +file(READ ${stamp} content) +if(NOT content STREQUAL 1) + set(RunCMake_TEST_FAILED "Expected stamp '1' but got: '${content}'") +endif() diff --git a/Tests/RunCMake/Configure/RerunCMakeNinja.cmake b/Tests/RunCMake/Configure/RerunCMakeNinja.cmake new file mode 100644 index 0000000000..da0131f76a --- /dev/null +++ b/Tests/RunCMake/Configure/RerunCMakeNinja.cmake @@ -0,0 +1,4 @@ +set(input ${CMAKE_CURRENT_BINARY_DIR}/input.txt) +set(stamp ${CMAKE_CURRENT_BINARY_DIR}/stamp.txt) +file(READ ${input} content) +file(WRITE ${stamp} "${content}") diff --git a/Tests/RunCMake/Configure/RunCMakeTest.cmake b/Tests/RunCMake/Configure/RunCMakeTest.cmake index 57cf947b6b..b29640a411 100644 --- a/Tests/RunCMake/Configure/RunCMakeTest.cmake +++ b/Tests/RunCMake/Configure/RunCMakeTest.cmake @@ -37,16 +37,25 @@ block() set(RunCMake_TEST_OUTPUT_MERGE 0) run_cmake_command(RerunCMake-build4 ${CMAKE_COMMAND} --build .) endif() - if(RunCMake_GENERATOR MATCHES "^Ninja") - file(REMOVE "${error}") - run_cmake(RerunCMake) +endblock() + +if(RunCMake_GENERATOR MATCHES "^Ninja") + block() + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/RerunCMakeNinja-build) + set(RunCMake_TEST_NO_CLEAN 1) + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + set(input "${RunCMake_TEST_BINARY_DIR}/input.txt") + set(stamp "${RunCMake_TEST_BINARY_DIR}/stamp.txt") + file(WRITE "${input}" "0") + run_cmake(RerunCMakeNinja) execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) # handle 1s resolution # remove cmake_install.cmake to trigger rerun file(REMOVE "${RunCMake_TEST_BINARY_DIR}/cmake_install.cmake") - file(WRITE "${input}" "5") - run_cmake_command(RerunCMake-build5 ${CMAKE_COMMAND} --build .) - endif() -endblock() + file(WRITE "${input}" "1") + run_cmake_command(RerunCMakeNinja-build1 ${CMAKE_COMMAND} --build .) + endblock() +endif() block() set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/RemoveCache-build)