mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-12-27 00:23:43 +03:00
45 lines
1.1 KiB
CMake
45 lines
1.1 KiB
CMake
# Ensure output directory exists
|
|
get_filename_component(_outdir "${STDOUT}" DIRECTORY)
|
|
file(MAKE_DIRECTORY "${_outdir}")
|
|
|
|
# Run the program
|
|
execute_process(
|
|
COMMAND "${PROG}" --shell "${XML}"
|
|
INPUT_FILE "${STDIN}"
|
|
OUTPUT_FILE "${STDOUT}"
|
|
ERROR_FILE "${STDERR}"
|
|
RESULT_VARIABLE rc
|
|
WORKING_DIRECTORY "${WORKDIR}"
|
|
)
|
|
|
|
if(NOT rc EQUAL 0)
|
|
message(STATUS "Program exited with ${rc}")
|
|
endif()
|
|
|
|
# Diff stdout
|
|
if(NOT EXISTS "${EXPECTED_STDOUT}")
|
|
message(FATAL_ERROR "Missing expected stdout file: ${EXPECTED_STDOUT}")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E compare_files
|
|
"${STDOUT}" "${EXPECTED_STDOUT}"
|
|
RESULT_VARIABLE cmp_stdout
|
|
)
|
|
|
|
if(NOT cmp_stdout EQUAL 0)
|
|
message(FATAL_ERROR "stdout does not match expected")
|
|
endif()
|
|
|
|
# Diff stderr if it exists
|
|
if(EXISTS "${EXPECTED_STDERR}")
|
|
execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E compare_files
|
|
"${STDERR}" "${EXPECTED_STDERR}"
|
|
RESULT_VARIABLE cmp_stderr
|
|
)
|
|
if(NOT cmp_stderr EQUAL 0)
|
|
message(FATAL_ERROR "stderr does not match expected")
|
|
endif()
|
|
endif()
|