Files
revng-revng/tests/tools/apply/CMakeLists.txt
2022-04-15 15:15:41 +02:00

49 lines
1.4 KiB
CMake

macro(
add_diff_apply_test
TEST_NAME
INPUT1
OUTPUT1
INPUT2
OUTPUT2
DIFF)
add_test(
NAME "${TEST_NAME}"
COMMAND
bash -c
"${CMAKE_BINARY_DIR}/bin/revng model import binary ${INPUT1} \
-o ${OUTPUT1} &&
${CMAKE_BINARY_DIR}/bin/revng model import binary ${INPUT1} \
-o ${OUTPUT2} &&
${CMAKE_BINARY_DIR}/bin/revng model diff ${OUTPUT1} ${OUTPUT2} -o ${DIFF} ;
${CMAKE_BINARY_DIR}/bin/revng model apply ${OUTPUT1} ${DIFF} -o ${OUTPUT1} &&
diff -u ${OUTPUT1} ${OUTPUT2}")
set_tests_properties(
"${TEST_NAME}" PROPERTIES LABELS "pipeline;run" ENVIRONMENT
"PATH=${CMAKE_BINARY_DIR}/bin:$ENV{PATH}")
endmacro()
function(get_all_compiled_artifacts OUTPUT_VAR)
set(TO_RETURN "")
macro(artifact_handler CATEGORY INPUT_FILE CONFIGURATION OUTPUT TARGET_NAME)
if("${CATEGORY}" STREQUAL "tests_runtime")
list(APPEND TO_RETURN ${INPUT_FILE})
endif()
endmacro()
register_derived_artifact("compiled" "" "" "FILE")
set(${OUTPUT_VAR}
${TO_RETURN}
PARENT_SCOPE)
endfunction()
get_all_compiled_artifacts(ALL_COMPILED)
list(GET ALL_COMPILED 1 FIRST)
list(GET ALL_COMPILED 2 SECOND)
add_diff_apply_test(
calc_global_apply_test ${FIRST} ${CMAKE_CURRENT_BINARY_DIR}/M1.yml ${SECOND}
${CMAKE_CURRENT_BINARY_DIR}/M2.yml ${CMAKE_CURRENT_BINARY_DIR}/diff.yml)
set(DEPEND_ON revng-all-binaries)