1*** Variables ***
2${URI}                              @https://dl.antmicro.com/projects/renode
3${BLINKY_ELF}                       ${URI}/zephyr-blinky.elf-s_409892-ff40b96865d6d6a7af51989180bb74dc21240a91
4${BUTTON_ELF}                       ${URI}/zephyr-button.elf-s_416536-a09e3bb98514ac3318664fe7572a0fca77dd8534
5${UART}                             sysbus.uart0
6${PLATFORM}                         @platforms/boards/sam4s_xplained.repl
7
8*** Keywords ***
9Prepare Machine
10    [Arguments]                     ${elf}
11    Execute Command                 using sysbus
12    Execute Command                 mach create "sam4s_xplained"
13
14    Execute Command                 machine LoadPlatformDescription ${PLATFORM}
15    Execute Command                 sysbus LoadELF ${elf}
16
17*** Test Cases ***
18Should Blink Led
19    Prepare Machine                 ${BLINKY_ELF}
20
21    Create Terminal Tester          ${UART}                                       defaultPauseEmulation=True
22    Create LED Tester               sysbus.pioC.LED                               defaultTimeout=1
23
24    Wait For Line On Uart           *** Booting Zephyr OS                         includeUnfinishedLine=true
25    Wait For Line On Uart           LED state: (ON|OFF)                           treatAsRegex=true
26
27    Assert LED Is Blinking          testDuration=8  onDuration=1  offDuration=1  pauseEmulation=true
28
29Should Handle Button Press
30    Prepare Machine                 ${BUTTON_ELF}
31    Create Terminal Tester          ${UART}                                       defaultPauseEmulation=True
32    Wait For Line On Uart           Press the button
33    Test If Uart Is Idle            1
34    Execute Command                 sysbus.pioA.Button Press
35    Test If Uart Is Idle            1
36    Execute Command                 sysbus.pioA.Button Release
37    Wait For Line On Uart           Button pressed
38    Test If Uart Is Idle            1
39    Execute Command                 sysbus.pioA.Button PressAndRelease
40    Wait For Line On Uart           Button pressed
41