63 lines
1.7 KiB
CMake
63 lines
1.7 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
find_program(
|
|
RENODE
|
|
renode
|
|
)
|
|
|
|
set(RENODE_FLAGS
|
|
--disable-xwt
|
|
--port -2
|
|
--pid-file renode.pid
|
|
)
|
|
|
|
# Check if there is any Renode script overlay defined for the target board
|
|
set(resc_overlay_file ${APPLICATION_SOURCE_DIR}/boards/${BOARD}.resc)
|
|
if(EXISTS ${resc_overlay_file})
|
|
set(RENODE_OVERLAY include "@${resc_overlay_file}\;")
|
|
message(STATUS "Found Renode script overlay: ${resc_overlay_file}")
|
|
endif()
|
|
|
|
add_custom_target(run_renode
|
|
COMMAND
|
|
${RENODE}
|
|
${RENODE_FLAGS}
|
|
-e '$$bin=@${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}\; include @${RENODE_SCRIPT}\; ${RENODE_OVERLAY} s'
|
|
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
|
|
DEPENDS ${logical_target_for_zephyr_elf}
|
|
USES_TERMINAL
|
|
)
|
|
|
|
find_program(
|
|
RENODE_TEST
|
|
renode-test
|
|
)
|
|
|
|
set(RENODE_TEST_FLAGS
|
|
--variable ELF:@${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}
|
|
--variable RESC:@${RENODE_SCRIPT}
|
|
--variable UART:${RENODE_UART}
|
|
--variable KEYWORDS:${ZEPHYR_BASE}/tests/robot/common.robot
|
|
--results-dir ${APPLICATION_BINARY_DIR}
|
|
)
|
|
|
|
add_custom_target(run_renode_test
|
|
COMMAND /bin/sh -c "\
|
|
if [ -z $$ROBOT_FILES ] \;\
|
|
then\
|
|
echo ''\;\
|
|
echo '--- Error: Robot file path is required to run Robot tests in Renode. To provide the path please set the ROBOT_FILES variable.'\;\
|
|
echo '--- To rerun the test with west execute:'\;\
|
|
echo '--- ROBOT_FILES=\\<FILES\\> west build -p -b \\<BOARD\\> -s \\<SOURCE_DIR\\> -t run_renode_test'\;\
|
|
echo ''\;\
|
|
exit 1\;\
|
|
fi\;"
|
|
COMMAND
|
|
${RENODE_TEST}
|
|
${RENODE_TEST_FLAGS}
|
|
${APPLICATION_SOURCE_DIR}/$$ROBOT_FILES
|
|
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
|
|
DEPENDS ${logical_target_for_zephyr_elf}
|
|
USES_TERMINAL
|
|
)
|