zephyr/cmake/emu/renode.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
)