1*** Variables ***
2${UART}                       sysbus.uart0
3${URI}                        @https://dl.antmicro.com/projects/renode
4
5*** Keywords ***
6Create Machine
7    [Arguments]     ${elf}      ${name}     ${id}
8
9    Execute Command             mach create ${name}
10    Execute Command             using sysbus
11    Execute Command             machine LoadPlatformDescription @platforms/cpus/cc2538.repl
12    Execute Command             connector Connect radio wireless
13
14    Execute Command             machine PyDevFromFile @scripts/pydev/rolling-bit.py 0x400D2004 0x4 True "sysctrl"
15
16    Execute Command             sysbus WriteDoubleWord 0x00280028 ${id}
17    Execute Command             sysbus WriteDoubleWord 0x0028002C 0x00
18    Execute Command             sysbus WriteDoubleWord 0x00280030 0xAB
19    Execute Command             sysbus WriteDoubleWord 0x00280034 0x89
20    Execute Command             sysbus WriteDoubleWord 0x00280038 0x00
21    Execute Command             sysbus WriteDoubleWord 0x0028003C 0x4B
22    Execute Command             sysbus WriteDoubleWord 0x00280040 0x12
23    Execute Command             sysbus WriteDoubleWord 0x00280044 0x00
24
25    Execute Command             sysbus LoadBinary @https://dl.antmicro.com/projects/renode/cc2538_rom_dump.bin-s_524288-0c196cdc21b5397f82e0ff42b206d1cc4b6d7522 0x0
26    Execute Command             sysbus LoadELF ${elf}
27    Execute Command             cpu VectorTableOffset `sysbus GetSymbolAddress "vectors"`
28
29
30*** Test Cases ***
31Should Talk Over Wireless Network
32    Set Test Variable           ${REPEATS}      3
33
34    Execute Command             emulation CreateIEEE802_15_4Medium "wireless"
35    Execute Command             wireless SetRangeWirelessFunction 11
36
37    Create Machine              @https://dl.antmicro.com/projects/renode/udp-server.elf-s_173732-a2aefb896d521a8fdc2a052cac1933c68cc39bf5       "server"      1
38    Execute Command             wireless SetPosition radio 0 0 0
39    ${server-tester}=           Create Terminal Tester      ${UART}     machine=server
40    Execute Command             mach clear
41
42    Create Machine              @https://dl.antmicro.com/projects/renode/udp-client.elf-s_173840-9eed7fe31993d055b98410b886044e8205a95644       "client-1"    2
43    Execute Command             wireless SetPosition radio 10 0 0
44    ${client1-tester}=          Create Terminal Tester      ${UART}     machine=client-1
45    Execute Command             mach clear
46
47    Create Machine              @https://dl.antmicro.com/projects/renode/udp-client.elf-s_173840-9eed7fe31993d055b98410b886044e8205a95644       "client-2"    3
48    Execute Command             wireless SetPosition radio 0 10 0
49    ${client2-tester}=          Create Terminal Tester      ${UART}     machine=client-2
50    Execute Command             mach clear
51
52
53    Start Emulation
54
55    FOR  ${i}  IN RANGE  0  ${REPEATS}
56        Wait For Line On Uart       Received request (\\d+) from fd00::200:0:0:2       testerId=${server-tester}        treatAsRegex=true      timeout=10
57        Wait For Line On Uart       Sending response (\\d+) to fd00::200:0:0:2         testerId=${server-tester}        treatAsRegex=true
58        Wait For Line On Uart       Received request (\\d+) from fd00::200:0:0:3       testerId=${server-tester}        treatAsRegex=true
59        Wait For Line On Uart       Sending response (\\d+) to fd00::200:0:0:3         testerId=${server-tester}        treatAsRegex=true
60    END
61
62    FOR  ${i}  IN RANGE  0  ${REPEATS}
63        Wait For Line On Uart       Sending request ${i} to fd00::200:0:0:1            testerId=${client1-tester}
64        Wait For Line On Uart       Received response ${i} from fd00::200:0:0:1        testerId=${client1-tester}
65    END
66
67    FOR  ${i}  IN RANGE  0  ${REPEATS}
68        Wait For Line On Uart       Sending request ${i} to fd00::200:0:0:1            testerId=${client2-tester}
69        Wait For Line On Uart       Received response ${i} from fd00::200:0:0:1        testerId=${client2-tester}
70    END
71
72