blob: 43a10ffbfd53afa76f6c9dfeb193eef61d4afabd [file] [log] [blame]
function(vec_cc_generated_test)
cmake_parse_arguments(
_RULE
""
"NAME"
"OPFMT;LINKOPTS;TIMEOUT"
${ARGN}
)
set(_OPCODE "${_RULE_NAME}")
foreach(_OPFMT ${_RULE_OPFMT})
string(TOLOWER ${_OPFMT} _LOWER_OPFMT)
set(_TEST_SRC ${CMAKE_CURRENT_BINARY_DIR}/generated/${_OPCODE}/${_OPCODE}_${_LOWER_OPFMT}_test.cpp)
add_custom_command(
OUTPUT
${_TEST_SRC}
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/templates/${_LOWER_OPFMT}_test.tpl.cpp
COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/generate_vector_tests.py
--template-path=${CMAKE_CURRENT_SOURCE_DIR}/templates/
--instruction-format ${_OPFMT}
--op-code ${_OPCODE}
--out-path=${CMAKE_CURRENT_BINARY_DIR}/generated/${_OPCODE}
)
list (APPEND _TEST_SRCS "${_TEST_SRC}")
endforeach()
vec_cc_test(
NAME
${_OPCODE}_test
SRCS
${_TEST_SRCS}
LINKOPTS
${_RULE_LINKOPTS}
TIMEOUT
${_RULE_TIMEOUT}
)
endfunction()