1 nnas_include(TargetRequire)
3 unset(REQUIRED_TARGETS)
4 list(APPEND REQUIRED_TARGETS circle-inspect)
5 list(APPEND REQUIRED_TARGETS circle-verify)
6 list(APPEND REQUIRED_TARGETS circle2circle)
7 list(APPEND REQUIRED_TARGETS dredd_rule_lib)
8 TargetRequire_Return(${REQUIRED_TARGETS})
15 set(multiValueArgs PASS)
17 get_target_property(ARTIFACTS_BIN_PATH testDataGenerator BINARY_DIR)
20 cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
22 foreach(src ${ARG_PASS})
24 list(APPEND OPT_OPTIONS "--${src}")
25 endforeach(src ${ARG_PASS})
27 set(CIRCLE_FILE "${RECIPE}.circle")
28 set(CIRCLE_PATH "${ARTIFACTS_BIN_PATH}/${CIRCLE_FILE}")
30 set(OPT_CIRCLE_FILE "${RECIPE}.opt.circle")
31 set(OPT_CIRCLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/${OPT_CIRCLE_FILE}")
33 # Generate optimized .circle
34 add_custom_command(OUTPUT ${OPT_CIRCLE_OUTPUT_PATH}
35 COMMAND $<TARGET_FILE:circle2circle> ${OPT_OPTIONS} ${CIRCLE_PATH} ${OPT_CIRCLE_OUTPUT_PATH}
36 DEPENDS $<TARGET_FILE:circle2circle> ${CIRCLE_PATH}
37 COMMENT "Generate ${OPT_CIRCLE_FILE}"
40 list(APPEND TEST_DEPS ${OPT_CIRCLE_OUTPUT_PATH})
41 list(APPEND TEST_NAMES ${RECIPE})
50 set(TEST_RUNNER "${CMAKE_CURRENT_BINARY_DIR}/testall.sh")
51 set(TEST_RUNNER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/testall.sh")
55 COMMAND ${CMAKE_COMMAND} -E copy "${TEST_RUNNER_SOURCE}" "${TEST_RUNNER}"
56 DEPENDS ${TEST_RUNNER_SOURCE}
57 COMMENT "Generate test runner"
60 list(APPEND TEST_DEPS "${TEST_RUNNER}")
63 ### Generate test.config
65 set(TEST_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/test.config")
69 COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_CONFIG}
70 COMMAND ${CMAKE_COMMAND} -E echo 'CIRCLE_INSPECT_PATH=\"$<TARGET_FILE:circle-inspect>\"' >> ${TEST_CONFIG}
71 COMMAND ${CMAKE_COMMAND} -E echo 'CIRCLE_VERIFY_PATH=\"$<TARGET_FILE:circle-verify>\"' >> ${TEST_CONFIG}
75 COMMENT "Generate test configuration"
78 list(APPEND TEST_DEPS "${TEST_CONFIG}")
81 # copy rule-lib.sh (a library of shell script functions)
84 # getting path for rule-lib.sh in dredd-rule-lib
85 get_target_property(DREDD_RULE_LIB_DIR dredd_rule_lib BINARY_DIR)
87 set(RULE_LIB_SOURCE_PATH "${DREDD_RULE_LIB_DIR}/rule-lib.sh")
88 set(RULE_LIB_BINARY_PATH "${CMAKE_CURRENT_BINARY_DIR}/rule-lib.sh")
91 OUTPUT ${RULE_LIB_BINARY_PATH}
92 COMMAND ${CMAKE_COMMAND} -E copy "${RULE_LIB_SOURCE_PATH}" "${RULE_LIB_BINARY_PATH}"
93 DEPENDS ${RULE_LIB_SOURCE_PATH}
94 COMMENT "Generate rule lib"
97 list(APPEND TEST_DEPS "${RULE_LIB_BINARY_PATH}")
99 # Generate dependencies
100 add_custom_target(circle2circle_dredd_recipe_test ALL DEPENDS ${TEST_DEPS})
101 add_dependencies(circle2circle_dredd_recipe_test common_artifacts_deps)
103 get_target_property(ARTIFACTS_BIN_PATH testDataGenerator BINARY_DIR)
107 NAME circle2circle_dredd_recipe_test
108 COMMAND "${TEST_RUNNER}"
110 "${ARTIFACTS_BIN_PATH}"