1*** Variables ***
2${URI}                        @https://dl.antmicro.com/projects/renode
3
4*** Keywords ***
5Prepare Machine
6    Execute Command           using sysbus
7    Execute Command           mach create "ARM"
8
9    Execute Command           machine LoadPlatformDescriptionFromString "cpu: CPU.CortexM @ sysbus { cpuType: \\"cortex-m4f\\"; nvic: nvic }; nvic: IRQControllers.NVIC @ sysbus 0xE000E000 { -> cpu@0 }"
10    Execute Command           machine LoadPlatformDescriptionFromString "rom: Memory.MappedMemory @ sysbus 0x0 { size: 0x40000 }"
11    Execute Command           machine LoadPlatformDescriptionFromString "ram: Memory.MappedMemory @ sysbus 0x20000000 { size: 0x100000 }"
12    Execute Command           machine LoadPlatformDescriptionFromString "serial: UART.TrivialUart @ sysbus 0x40000000"
13    Create Terminal Tester    sysbus.serial
14
15*** Test Cases ***
16Should Successfully Run ARM CMSIS-DSP Bayes Example
17    Prepare Machine
18    Execute Command           sysbus LoadELF ${URI}/arm_bayes_example-s_507204-e7a628ba214a783da267aa0ad020a17b4a639023
19    Start Emulation
20
21    Wait For Line On Uart     Class = 0
22    Wait For Line On Uart     Class = 1
23    Wait For Line On Uart     Class = 2
24
25Should Successfully Run ARM CMSIS-DSP Class Marks Example
26    Prepare Machine
27    Execute Command           sysbus LoadELF ${URI}/arm_class_marks_example-s_512880-20dc1258703a507ecbb8aa90a1e7acc40283ab49
28    Start Emulation
29
30    Wait For Line On Uart     mean = 212.3[0-9]*, std = 50.9      treatAsRegex=true
31
32Should Successfully Run ARM CMSIS-DSP Convolution Example
33    Prepare Machine
34    Execute Command           sysbus LoadELF ${URI}/arm_convolution_example-s_527464-f021944bc003161d6df52cd9bbd32ca97aa28c2a
35    Start Emulation
36
37    Wait For Line On Uart     SUCCESS
38
39Should Successfully Run ARM CMSIS-DSP Dotproduct Example
40    Prepare Machine
41    Execute Command           sysbus LoadELF ${URI}/arm_dotproduct_example-s_497436-cf26bc832acfc3c0fd2a537ff6f0e36c0f0172e1
42    Start Emulation
43
44    Wait For Line On Uart     SUCCESS
45
46Should Successfully Run ARM CMSIS-DSP FFT Bin Example
47    Prepare Machine
48    Execute Command           sysbus LoadELF ${URI}/arm_fft_bin_example-s_604476-5d8048f7059da9e37dc30224cd5aa74e1565155e
49    Start Emulation
50
51    Wait For Line On Uart     SUCCESS
52
53Should Successfully Run ARM CMSIS-DSP FIR Example
54    Prepare Machine
55    Execute Command           sysbus LoadELF ${URI}/arm_fir_example-s_510172-03c41dfef01b0b66a5c49bcd209a78f8d8b91160
56    Start Emulation
57
58    Wait For Line On Uart     SUCCESS
59
60Should Successfully Run ARM CMSIS-DSP Graphic Equalizer Example
61    Prepare Machine
62    Execute Command           sysbus LoadELF ${URI}/arm_graphic_equalizer_example-s_522692-caa2b4f68c8a7ca1b5ed048eb32b93d220244ff6
63    Start Emulation
64
65    Wait For Line On Uart     SUCCESS
66
67Should Successfully Run ARM CMSIS-DSP Linear Interp Example
68    Prepare Machine
69    Execute Command           sysbus LoadELF ${URI}/arm_linear_interp_example-s_514692-2901143773db5391a8c385074ea767c3641ec50e
70    Start Emulation
71
72    Wait For Line On Uart     SUCCESS
73
74Should Successfully Run ARM CMSIS-DSP Matrix Example
75    Prepare Machine
76    Execute Command           sysbus LoadELF ${URI}/arm_matrix_example-s_510168-829948702fc106f9364a750405c386ae1ada9b14
77    Start Emulation
78
79    Wait For Line On Uart     SUCCESS
80
81Should Successfully Run ARM CMSIS-DSP Signal Convergence Example
82    Prepare Machine
83    Execute Command           sysbus LoadELF ${URI}/arm_signal_convergence_example-s_516952-9d2773124f7b773e221c32b6fb68152ad9dddf35
84    Start Emulation
85
86    Wait For Line On Uart     SUCCESS
87
88Should Successfully Run ARM CMSIS-DSP Sin Cos Example
89    Prepare Machine
90    Execute Command           sysbus LoadELF ${URI}/arm_sin_cos_example-s_508376-54497ea45b654a5587649f98084a979a204506ad
91    Start Emulation
92
93    Wait For Line On Uart     SUCCESS
94
95Should Successfully Run ARM CMSIS-DSP SVM Example
96    Prepare Machine
97    Execute Command           sysbus LoadELF ${URI}/arm_svm_example-s_506948-254f2b8aff2adae8bc26bd48d6bd7d18dcfb49d7
98    Start Emulation
99
100    Wait For Line On Uart     Result = 0
101    Wait For Line On Uart     Result = 1
102
103Should Successfully Run ARM CMSIS-DSP Variance Example
104    Prepare Machine
105    Execute Command           sysbus LoadELF ${URI}/arm_variance_example-s_501832-107cb91eec0bde73d269578dc0f78ab223cca4f8
106    Start Emulation
107
108    Wait For Line On Uart     SUCCESS
109