mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
49 lines
1.4 KiB
CMake
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)
|