mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-17 15:32:10 +08:00
Tests: Update for upstream ninja change to write status on stderr
Upstream ninja commit `ad3d29fb53` (Put builder output through status interface) from ninja PR 1899 changed the status output from stdout to stderr. In particular, `ninja: no work to do` is now printed on stderr. Update our RunCMake tests to accept this difference. A few RunCMake test cases check for `ninja: no work to do`. For those, move the message to stdout using `RunCMake_TEST_OUTPUT_MERGE`. The rest of the test cases do not care about the message, so remove it from the actual stderr content before comparing against that expected.
This commit is contained in:
@@ -34,6 +34,7 @@ function(run_NoWorkToDo)
|
||||
run_cmake(NoWorkToDo)
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/NoWorkToDo-build)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(NoWorkToDo-build ${CMAKE_COMMAND} --build .)
|
||||
run_cmake_command(NoWorkToDo-nowork ${CMAKE_COMMAND} --build . -- -d explain)
|
||||
endfunction()
|
||||
@@ -43,6 +44,7 @@ function(run_VerboseBuild)
|
||||
run_cmake(VerboseBuild)
|
||||
set(RunCMake_TEST_NO_CLEAN 1)
|
||||
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/VerboseBuild-build)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(VerboseBuild-build ${CMAKE_COMMAND} --build . -v --clean-first)
|
||||
run_cmake_command(VerboseBuild-nowork ${CMAKE_COMMAND} --build . --verbose)
|
||||
endfunction()
|
||||
|
@@ -139,6 +139,12 @@ function(run_cmake test)
|
||||
if(NOT "${actual_result}" MATCHES "${expect_result}")
|
||||
string(APPEND msg "Result is [${actual_result}], not [${expect_result}].\n")
|
||||
endif()
|
||||
|
||||
# Special case: remove ninja no-op line from stderr, but not stdout.
|
||||
# Test cases that look for it should use RunCMake_TEST_OUTPUT_MERGE.
|
||||
string(REGEX REPLACE "(^|\r?\n)ninja: no work to do\\.\r?\n" "\\1" actual_stderr "${actual_stderr}")
|
||||
|
||||
# Remove incidental content from both stdout and stderr.
|
||||
string(CONCAT ignore_line_regex
|
||||
"(^|\n)((==[0-9]+=="
|
||||
"|BullseyeCoverage"
|
||||
|
@@ -93,7 +93,9 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja")
|
||||
message(STATUS "RerunCMake: first configuration...")
|
||||
run_cmake(RerunCMake)
|
||||
if(NOT CMake_TEST_FILESYSTEM_1S)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(RerunCMake-nowork${ninja} ${CMAKE_COMMAND} --build .)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) # handle 1s resolution
|
||||
@@ -101,7 +103,9 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja")
|
||||
file(WRITE "${in_tc}" "does-not-compile\n")
|
||||
run_cmake_command(RerunCMake-rerun${ninja} ${CMAKE_COMMAND} --build .)
|
||||
if(NOT CMake_TEST_FILESYSTEM_1S)
|
||||
set(RunCMake_TEST_OUTPUT_MERGE 1)
|
||||
run_cmake_command(RerunCMake-nowork${ninja} ${CMAKE_COMMAND} --build .)
|
||||
unset(RunCMake_TEST_OUTPUT_MERGE)
|
||||
endif()
|
||||
|
||||
unset(RunCMake_TEST_BINARY_DIR)
|
||||
|
Reference in New Issue
Block a user