1*** Variables ***
2${URI}                              @https://dl.antmicro.com/projects/renode
3
4${ZEPHYR_HELLO_WORLD_ELF}           ${URI}/nucleo_l552ze_q_ns--zephyr--hello_world.elf-s_615516-3e800e15d4386afba85b76c503f452dbc513028d
5${ZEPHYR_PROTECTION_ELF}            ${URI}/nucleo_l552ze_q_ns--zephyr--protection.elf-s_730016-68ff84b16a3e747ef6000c7fb1028ab09f2575f7
6${ZEPHYR_USERSPACE_ELF}             ${URI}/nucleo_l552ze_q_ns--zephyr--userspace.elf-s_1653252-5e6a7c754a5a1a0d1252f09d7ae85adb757400a2
7${ZEPHYR_FPU_SHARING_ELF}           ${URI}/nucleo_l552ze_q_ns--zephyr--fpu_sharing.elf-s_724424-c19b4618796e973303a436eb040cae81ccf5acc8
8
9*** Keywords ***
10Create Machine
11    [Arguments]                     ${ELF}
12
13    Execute Command                 mach create
14    Execute Command                 machine LoadPlatformDescription "${CURDIR}${/}nucleo_l552ze_q${/}nucleo_l552ze_q_ns.repl"
15    Execute Command                 sysbus LoadELF ${ELF}
16
17    Create Terminal Tester          sysbus.lpuart1
18
19*** Test Cases ***
20Should Boot Zephyr Hello World
21    Create Machine                  ${ZEPHYR_HELLO_WORLD_ELF}
22    Start Emulation
23
24    Wait For Line On Uart           Hello World! nucleo_l552ze_q
25
26Should Pass Zephyr Protection Test
27    # Test the PMSAv8 MPU
28    Create Machine                  ${ZEPHYR_PROTECTION_ELF}
29    Start Emulation
30
31    Wait For Line On Uart           PROJECT EXECUTION SUCCESSFUL
32
33Should Pass Zephyr Userspace Test
34    # Test the TT(T) instruction parsing
35    Create Machine                  ${ZEPHYR_USERSPACE_ELF}
36    Start Emulation
37
38    Wait For Line On Uart           PROJECT EXECUTION SUCCESSFUL
39
40Should Pass Zephyr FPU Sharing Test
41    # Test the EXC_RETURN value
42    Create Machine                  ${ZEPHYR_FPU_SHARING_ELF}
43    Start Emulation
44
45    Wait For Line On Uart           PROJECT EXECUTION SUCCESSFUL  timeout=30
46