diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2023-10-16 14:42:52 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2023-10-16 16:23:41 (GMT) |
commit | 35f031e3b2ed09d3c2a935e61ea621b9a6941af6 (patch) | |
tree | 31cc6c0c663d92e3ee742f71c26a64212d1f9b7a /Tests | |
parent | 85fc81c61da699e7f63386d4578cc7b387040488 (diff) | |
download | CMake-35f031e3b2ed09d3c2a935e61ea621b9a6941af6.zip CMake-35f031e3b2ed09d3c2a935e61ea621b9a6941af6.tar.gz CMake-35f031e3b2ed09d3c2a935e61ea621b9a6941af6.tar.bz2 |
execute_process(): Restore opening files relative to WORKING_DIRECTORY
Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE,
and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was
provided. Restore this behavior for backwards compatibility.
Fixes: #25338
Diffstat (limited to 'Tests')
6 files changed, 22 insertions, 0 deletions
diff --git a/Tests/RunCMake/execute_process/InOutErrDirectory.cmake b/Tests/RunCMake/execute_process/InOutErrDirectory.cmake new file mode 100644 index 0000000..fe5a836 --- /dev/null +++ b/Tests/RunCMake/execute_process/InOutErrDirectory.cmake @@ -0,0 +1,13 @@ +file(MAKE_DIRECTORY dir) +file(WRITE dir/in.txt "This is a test") +execute_process(COMMAND ${PRINT_STDIN_EXE} WORKING_DIRECTORY dir INPUT_FILE in.txt OUTPUT_FILE out.txt ERROR_FILE err.txt) +if(NOT EXISTS dir/out.txt) + message(SEND_ERROR "Did not create dir/out.txt") +endif() +file(READ dir/out.txt out) +if(NOT out STREQUAL "This is a test") + message(SEND_ERROR "Did not read dir/in.txt") +endif() +if(NOT EXISTS dir/err.txt) + message(SEND_ERROR "Did not create dir/err.txt") +endif() diff --git a/Tests/RunCMake/execute_process/RunCMakeTest.cmake b/Tests/RunCMake/execute_process/RunCMakeTest.cmake index 1f89829..1e9e10a 100644 --- a/Tests/RunCMake/execute_process/RunCMakeTest.cmake +++ b/Tests/RunCMake/execute_process/RunCMakeTest.cmake @@ -35,6 +35,11 @@ run_cmake_command(LastCommandError ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/La run_cmake_command(LastCommandTimeout ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandTimeout.cmake) run_cmake_command(LastCommandGood ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/LastCommandGood.cmake) run_cmake_command(Stdin ${CMAKE_COMMAND} -DPRINT_STDIN_EXE=${PRINT_STDIN_EXE} -P ${RunCMake_SOURCE_DIR}/Stdin.cmake) +run_cmake_command(StdinNoexist ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/StdinNoexist.cmake) +run_cmake_command(StdoutNoexist ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/StdoutNoexist.cmake) +run_cmake_command(StderrNoexist ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/StderrNoexist.cmake) +run_cmake_command(StdoutStderrNoexist ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/StderrNoexist.cmake) +run_cmake_command(InOutErrDirectory ${CMAKE_COMMAND} -DPRINT_STDIN_EXE=${PRINT_STDIN_EXE} -P ${RunCMake_SOURCE_DIR}/InOutErrDirectory.cmake) if(UNIX AND Python_EXECUTABLE) run_cmake_command(AnyCommandAbnormalExit ${CMAKE_COMMAND} -DPython_EXECUTABLE=${Python_EXECUTABLE} -P ${RunCMake_SOURCE_DIR}/AnyCommandAbnormalExit.cmake) diff --git a/Tests/RunCMake/execute_process/StderrNoexist.cmake b/Tests/RunCMake/execute_process/StderrNoexist.cmake new file mode 100644 index 0000000..632c4a2 --- /dev/null +++ b/Tests/RunCMake/execute_process/StderrNoexist.cmake @@ -0,0 +1 @@ +execute_process(COMMAND ${CMAKE_COMMAND} -E true ERROR_FILE noexist/error.txt) diff --git a/Tests/RunCMake/execute_process/StdinNoexist.cmake b/Tests/RunCMake/execute_process/StdinNoexist.cmake new file mode 100644 index 0000000..6421cc8 --- /dev/null +++ b/Tests/RunCMake/execute_process/StdinNoexist.cmake @@ -0,0 +1 @@ +execute_process(COMMAND ${CMAKE_COMMAND} -E true INPUT_FILE noexist/input.txt) diff --git a/Tests/RunCMake/execute_process/StdouStderrNoexist.cmake b/Tests/RunCMake/execute_process/StdouStderrNoexist.cmake new file mode 100644 index 0000000..5334cdc --- /dev/null +++ b/Tests/RunCMake/execute_process/StdouStderrNoexist.cmake @@ -0,0 +1 @@ +execute_process(COMMAND ${CMAKE_COMMAND} -E true OUTPUT_FILE noexist/merged.txt ERROR_FILE noexist/merged.txt) diff --git a/Tests/RunCMake/execute_process/StdoutNoexist.cmake b/Tests/RunCMake/execute_process/StdoutNoexist.cmake new file mode 100644 index 0000000..4f5c33e --- /dev/null +++ b/Tests/RunCMake/execute_process/StdoutNoexist.cmake @@ -0,0 +1 @@ +execute_process(COMMAND ${CMAKE_COMMAND} -E true OUTPUT_FILE noexist/output.txt) |