mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
44 lines
1.7 KiB
CMake
44 lines
1.7 KiB
CMake
#
|
|
# This file is distributed under the MIT License. See LICENSE.md for details.
|
|
#
|
|
|
|
add_subdirectory(tools/revng-abi-verify)
|
|
add_subdirectory(tools/revng-ensure-rft-equivalence)
|
|
|
|
macro(artifact_handler CATEGORY INPUT_FILE CONFIGURATION OUTPUT TARGET_NAME)
|
|
set(INPUT_FILE "${INPUT_FILE}")
|
|
list(GET INPUT_FILE 0 COMPILED_INPUT)
|
|
list(GET INPUT_FILE 1 COMPILED_RUN_INPUT)
|
|
|
|
if("${CATEGORY}" MATCHES "^abi_test_function_library_(.+)"
|
|
AND NOT "${CONFIGURATION}" STREQUAL "static_native")
|
|
|
|
# CMAKE_MATCH_1 comes from the MATCHES before
|
|
set(ABI_NAME "${CMAKE_MATCH_1}")
|
|
|
|
# We use foreach but there will be only one run
|
|
foreach(RUN IN LISTS ARTIFACT_RUNS_${ARTIFACT_CATEGORY}__${ARTIFACT})
|
|
set(TEST_NAME runtime-abi-test-${ABI_NAME}-${RUN})
|
|
set(TEMPORARY_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME}")
|
|
make_directory("${TEMPORARY_DIRECTORY}")
|
|
|
|
get_filename_component(DESCRIBE_ABI_TEST_FUNCTIONS_ARTIFACT
|
|
"${COMPILED_RUN_INPUT}" DIRECTORY)
|
|
set(DESCRIBE_ABI_TEST_FUNCTIONS_ARTIFACT
|
|
"${DESCRIBE_ABI_TEST_FUNCTIONS_ARTIFACT}/describe_abi_test_functions/default.stdout"
|
|
)
|
|
|
|
add_test(
|
|
NAME "${TEST_NAME}"
|
|
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/test.sh" "${ABI_NAME}"
|
|
"${DESCRIBE_ABI_TEST_FUNCTIONS_ARTIFACT}" "${COMPILED_INPUT}"
|
|
WORKING_DIRECTORY "${TEMPORARY_DIRECTORY}")
|
|
set_tests_properties(
|
|
"${TEST_NAME}"
|
|
PROPERTIES LABELS "abi;${ABI_NAME};${CONFIGURATION}" ENVIRONMENT
|
|
"PATH=${CMAKE_BINARY_DIR}/bin:$ENV{PATH}")
|
|
endforeach()
|
|
endif()
|
|
endmacro()
|
|
register_derived_artifact("compiled;compiled-run" "" "" "FILE")
|