Files
revng-revng/tests/tools/invalidate/CMakeLists.txt
2022-04-15 15:17:58 +02:00

43 lines
1.4 KiB
CMake

function(add_invalidation_test TEST_NAME)
set(options)
set(oneValueArgs STEP INPUT PIPELINE INVALIDATIONS)
set(multiValueArgs TARGETS)
cmake_parse_arguments(OPT "${options}" "${oneValueArgs}" "${multiValueArgs}"
"${ARGN}")
add_test(
NAME "${TEST_NAME}"
COMMAND
bash -c "rm -rf ${CMAKE_BINARY_DIR}/${TEST_NAME} &&
mkdir ${CMAKE_BINARY_DIR}/${TEST_NAME} &&
${CMAKE_BINARY_DIR}/libexec/revng/revng-pipeline \
-P ${OPT_PIPELINE} \
${OPT_TARGETS} \
-i begin:Strings1:${OPT_INPUT} \
-l ${CMAKE_BINARY_DIR}/lib/librevngStringContainerLibrary.so \
-p ${CMAKE_BINARY_DIR}/${TEST_NAME} \
--step ${OPT_STEP} &&
${CMAKE_BINARY_DIR}/libexec/revng/revng-invalidate \
-P ${OPT_PIPELINE} \
${OPT_INVALIDATIONS} \
-l ${CMAKE_BINARY_DIR}/lib/librevngStringContainerLibrary.so \
-p ${CMAKE_BINARY_DIR}/${TEST_NAME} \
--step ${OPT_STEP}")
set_tests_properties(
"${TEST_NAME}" PROPERTIES LABELS "pipeline;run" ENVIRONMENT
"PATH=${CMAKE_BINARY_DIR}/bin:$ENV{PATH}")
endfunction()
add_invalidation_test(
simple_invalidation_test
TARGETS
"Strings2:Root:StringKind"
STEP
"FirstStep"
INPUT
"${CMAKE_CURRENT_SOURCE_DIR}/InvalidateTestInput.txt"
PIPELINE
"${CMAKE_CURRENT_SOURCE_DIR}/SimpleInvalidationTestPipeline.yml"
INVALIDATIONS
"Strings1:Root:StringKind")