| function(vec_cc_test) |
| cmake_parse_arguments( |
| _RULE |
| "" |
| "NAME" |
| "SRCS;COPTS;DEFINES;LINKOPTS;DATA;DEPS;LABELS;TIMEOUT" |
| ${ARGN} |
| ) |
| |
| set(_NAME "${_RULE_NAME}") |
| project(${_RULE_NAME}) |
| set (CMAKE_CXX_STANDARD 17) |
| |
| vec_cc_binary( |
| NAME |
| ${_RULE_NAME} |
| SRCS |
| ${_RULE_SRCS} |
| DEPS |
| pw_unit_test |
| pw_unit_test.main |
| pw_assert_basic |
| test_v_helpers |
| ${_RULE_DEPS} |
| LINKOPTS |
| ${_RULE_LINKOPTS} |
| ) |
| |
| if(NOT DEFINED ${_RULE_TIMEOUT}) |
| set(_RULE_TIMEOUT 20) |
| endif() |
| |
| find_program(QEMU_RV32 qemu-system-riscv32 HINTS $ENV{OUT}/host/qemu REQUIRED) |
| find_program(RENODE_EXE Renode.exe HINTS $ENV{OUT}/host/renode REQUIRED) |
| add_test(NAME "qemu_${_RULE_NAME}" |
| COMMAND test_runner.py qemu $<TARGET_FILE:${_RULE_NAME}.elf> --qemu-path ${QEMU_RV32}) |
| add_test(NAME "renode_${_RULE_NAME}" |
| COMMAND test_runner.py renode $<TARGET_FILE:${_RULE_NAME}.elf> --renode-path ${RENODE_EXE}) |
| set_tests_properties("renode_${_RULE_NAME}" PROPERTIES TIMEOUT ${_RULE_TIMEOUT}) |
| set_tests_properties("qemu_${_RULE_NAME}" PROPERTIES TIMEOUT ${_RULE_TIMEOUT}) |
| |
| endfunction() |