1*** Variables ***
2${URI}                   @https://dl.antmicro.com/projects/renode
3
4${PLATFORM}=    SEPARATOR=
5...  """                                                                ${\n}
6...  mem: Memory.MappedMemory @sysbus 0x0                               ${\n}
7...  ${SPACE*4}size: 0x1000                                             ${\n}
8...                                                                     ${\n}
9...  cpu: CPU.RiscV32 @ sysbus                                          ${\n}
10...  ${SPACE*4}cpuType: "rv32imac_zicsr_zifencei"                       ${\n}
11...  ${SPACE*4}privilegedArchitecture: PrivilegedArchitecture.Priv1_10  ${\n}
12...  """                                                                ${\n}
13
14
15*** Keywords ***
16Create Machine
17    Execute Command             using sysbus
18    Execute Command             mach create
19    Execute Command             machine LoadPlatformDescriptionFromString ${PLATFORM}
20
21    # Create loop
22    # addi    s0, t2, 32
23    Execute Command             sysbus WriteDoubleWord 0x0 0x02038413
24    # addi    s0, t2, 32
25    Execute Command             sysbus WriteDoubleWord 0x4 0x02038413
26    # j       -8
27    Execute Command             sysbus WriteDoubleWord 0x8 0xff9ff06f
28
29    Execute Command             cpu PC 0x0
30
31*** Test Cases ***
32# This test verifies if Renode can be quickly paused when large quantum is set
33Should Renode Pause In Short Time With Large Quantum Set
34    # 10 seconds should be enough to pause the emulation
35    [Timeout]                   10 seconds
36    Create Machine
37
38    Execute Command             emulation SetGlobalQuantum "1000000"
39    Execute Command             start
40    # wait few seconds to created larger difference between virtual and host time
41    Sleep                       3s
42    Execute Command             pause
43