1*** Variables ***
2${SYSTEMC_BINARY}                   @https://dl.antmicro.com/projects/renode/x64-systemc--transaction-delay.elf-s_730520-71a2e317e0f42799b7679af5dba036e918a7146e
3${ZEPHYR_BINARY}                    @https://dl.antmicro.com/projects/renode/systemc-examples-zephyr-transaction-delay-stm32f401_mini.elf-s_572316-f591f8f491f1f3480aa6f7284d2bdbef3bebb8d5
4${UART}                             sysbus.usart1
5
6*** Keywords ***
7Create Machine
8    Execute Command                 mach create
9    Execute Command                 machine LoadPlatformDescription @tests/platforms/systemc/transaction-delay/transaction-delay.repl
10    Execute Command                 sysbus LoadELF ${ZEPHYR_BINARY}
11    Execute Command                 systemc SystemCExecutablePath ${SYSTEMC_BINARY}
12
13Virtual Time Should Be Equal To
14    [Arguments]                     ${time_string}
15    ${res}=                         Execute Command  machine ElapsedVirtualTime
16    Should Contain                  ${res}  Elapsed Virtual Time: ${time_string}
17
18*** Test Cases ***
19Should Respect SystemC Transaction Durations
20    [Tags]                          skip_windows    skip_osx
21    Create Machine
22    Create Terminal Tester          ${UART}
23    Start Emulation
24
25    Wait For Line On Uart           SystemC virtual time (1s transaction delay): 1 s
26    Virtual Time Should Be Equal To  00:00:02
27
28    Wait For Line On Uart           SystemC virtual time (1s transaction delay): 2 s
29    Virtual Time Should Be Equal To  00:00:03
30
31    Wait For Line On Uart           SystemC virtual time (1s transaction delay): 6 s
32    Virtual Time Should Be Equal To  00:00:07
33