| *** Variables *** |
| ${UART} sysbus.uart0 |
| ${URI} @https://dl.antmicro.com/projects/renode |
| |
| *** Keywords *** |
| Create Machine |
| [Arguments] ${elf} ${name} ${id} |
| |
| Execute Command mach create ${name} |
| Execute Command using sysbus |
| Execute Command machine LoadPlatformDescription @platforms/cpus/cc2538.repl |
| Execute Command connector Connect radio wireless |
| |
| Execute Command machine PyDevFromFile @scripts/pydev/rolling-bit.py 0x400D2004 0x4 True "sysctrl" |
| |
| Execute Command sysbus WriteDoubleWord 0x00280028 ${id} |
| Execute Command sysbus WriteDoubleWord 0x0028002C 0x00 |
| Execute Command sysbus WriteDoubleWord 0x00280030 0xAB |
| Execute Command sysbus WriteDoubleWord 0x00280034 0x89 |
| Execute Command sysbus WriteDoubleWord 0x00280038 0x00 |
| Execute Command sysbus WriteDoubleWord 0x0028003C 0x4B |
| Execute Command sysbus WriteDoubleWord 0x00280040 0x12 |
| Execute Command sysbus WriteDoubleWord 0x00280044 0x00 |
| |
| Execute Command sysbus LoadBinary @https://dl.antmicro.com/projects/renode/cc2538_rom_dump.bin-s_524288-0c196cdc21b5397f82e0ff42b206d1cc4b6d7522 0x0 |
| Execute Command sysbus LoadELF ${elf} |
| Execute Command cpu VectorTableOffset `sysbus GetSymbolAddress "vectors"` |
| |
| |
| *** Test Cases *** |
| Should Talk Over Wireless Network |
| Set Test Variable ${REPEATS} 3 |
| |
| Execute Command emulation CreateIEEE802_15_4Medium "wireless" |
| Execute Command wireless SetRangeWirelessFunction 11 |
| |
| Create Machine @https://dl.antmicro.com/projects/renode/udp-server.elf-s_173732-a2aefb896d521a8fdc2a052cac1933c68cc39bf5 "server" 1 |
| Execute Command wireless SetPosition radio 0 0 0 |
| ${server-tester}= Create Terminal Tester ${UART} machine=server |
| Execute Command mach clear |
| |
| Create Machine @https://dl.antmicro.com/projects/renode/udp-client.elf-s_173840-9eed7fe31993d055b98410b886044e8205a95644 "client-1" 2 |
| Execute Command wireless SetPosition radio 10 0 0 |
| ${client1-tester}= Create Terminal Tester ${UART} machine=client-1 |
| Execute Command mach clear |
| |
| Create Machine @https://dl.antmicro.com/projects/renode/udp-client.elf-s_173840-9eed7fe31993d055b98410b886044e8205a95644 "client-2" 3 |
| Execute Command wireless SetPosition radio 0 10 0 |
| ${client2-tester}= Create Terminal Tester ${UART} machine=client-2 |
| Execute Command mach clear |
| |
| |
| Start Emulation |
| |
| FOR ${i} IN RANGE 0 ${REPEATS} |
| Wait For Line On Uart Received request (\\d+) from fd00::200:0:0:2 testerId=${server-tester} treatAsRegex=true timeout=10 |
| Wait For Line On Uart Sending response (\\d+) to fd00::200:0:0:2 testerId=${server-tester} treatAsRegex=true |
| Wait For Line On Uart Received request (\\d+) from fd00::200:0:0:3 testerId=${server-tester} treatAsRegex=true |
| Wait For Line On Uart Sending response (\\d+) to fd00::200:0:0:3 testerId=${server-tester} treatAsRegex=true |
| END |
| |
| FOR ${i} IN RANGE 0 ${REPEATS} |
| Wait For Line On Uart Sending request ${i} to fd00::200:0:0:1 testerId=${client1-tester} |
| Wait For Line On Uart Received response ${i} from fd00::200:0:0:1 testerId=${client1-tester} |
| END |
| |
| FOR ${i} IN RANGE 0 ${REPEATS} |
| Wait For Line On Uart Sending request ${i} to fd00::200:0:0:1 testerId=${client2-tester} |
| Wait For Line On Uart Received response ${i} from fd00::200:0:0:1 testerId=${client2-tester} |
| END |
| |