1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-12-27 00:23:43 +03:00
Files
libxml2/run_and_diff.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()