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.
diff --git a/Tests/RunCMake/Configure/RerunCMake-build5-check.cmake b/Tests/RunCMake/Configure/RerunCMake-build5-check.cmake
deleted file mode 100644
index d740671..0000000
--- 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 0000000..3fb557f
--- /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 0000000..da0131f
--- /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 57cf947..b29640a 100644
--- a/Tests/RunCMake/Configure/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Configure/RunCMakeTest.cmake
@@ -37,16 +37,25 @@
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)