blob: 1ca4be6ed295f85ee1c376bc39c5e3981c906011 [file] [log] [blame]
*** 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