1*** Variables *** 2${SCRIPT} @scripts/single-node/beaglev_starlight.resc 3${MACHINE0} machine0 4${MACHINE1} machine1 5${MAC_ADDR0} 66:34:B0:6C:DE:A0 6${MAC_ADDR1} 66:34:B0:6C:DE:A1 7${IP_ADDR0} 192.168.0.5 8${IP_ADDR1} 192.168.0.6 9${UART} sysbus.uart3 10 11 12*** Keywords *** 13Create Machine 14 [Arguments] ${machine} 15 Execute Command $name="${machine}" 16 Execute Command include @${SCRIPT} 17 # We enable serial execution to ensure a deterministic result as this test uses 2 machines, each with 2 CPUs 18 Execute Command emulation SetGlobalSerialExecution True 19 ${tester} = Create Terminal Tester ${UART} 40 ${machine} defaultPauseEmulation=True 20 RETURN ${tester} 21 22Connect Machines To Switch 23 Execute Command emulation CreateSwitch "switch" 24 Execute Command connector Connect sysbus.ethernet switch machine=${MACHINE0} 25 Execute Command connector Connect sysbus.ethernet switch machine=${MACHINE1} 26 27Verify U-Boot 28 [Arguments] ${tester} 29 Wait For Line On Uart OpenSBI v0.9 testerId=${tester} 30 Wait For Line On Uart Platform Name\\s+: StarFive testerId=${tester} treatAsRegex=true 31 Wait For Line On Uart U-Boot 2021.01 testerId=${tester} 32 Wait For Prompt On Uart dwmac.10020000 testerId=${tester} 33 34Login 35 [Arguments] ${tester} 36 Wait For Prompt On Uart buildroot login: testerId=${tester} 37 Write Line To Uart root testerId=${tester} 38 39 Wait For Prompt On Uart Password: testerId=${tester} 40 Write Line To Uart starfive testerId=${tester} waitForEcho=false 41 42Test Ping 43 [Arguments] ${packet_size}=56 44 ${tester} = Create Terminal Tester ${UART} machine=${MACHINE0} defaultPauseEmulation=True 45 Write Line To Uart ping -As ${packet_size} -c 10 ${IP_ADDR0} testerId=${tester} waitForEcho=false 46 Wait For Line On Uart 10 packets transmitted, 10 packets received, 0% packet loss testerId=${tester} 47 48 49*** Test Cases *** 50Should Boot U-Boot 51 ${tester0} = Create Machine ${MACHINE0} 52 ${tester1} = Create Machine ${MACHINE1} 53 54 Verify U-Boot ${tester0} 55 Verify U-Boot ${tester1} 56 57 Provides booted-uboot 58 59Should Provide Two Linux Machines With Ethernet Connection 60 Requires booted-uboot 61 62 Connect Machines To Switch 63 64 ${tester0} = Create Terminal Tester ${UART} machine=${MACHINE0} defaultPauseEmulation=True 65 ${tester1} = Create Terminal Tester ${UART} machine=${MACHINE1} defaultPauseEmulation=True 66 67 Login ${tester0} 68 Login ${tester1} 69 70 Wait For Prompt On Uart \# testerId=${tester0} 71 Write Line To Uart ifconfig eth0 down testerId=${tester0} 72 Wait For Prompt On Uart \# testerId=${tester1} 73 Write Line To Uart ifconfig eth0 down testerId=${tester1} 74 75 Wait For Prompt On Uart \# testerId=${tester0} 76 Write Line To Uart ifconfig eth0 hw ether ${MAC_ADDR0} testerId=${tester0} 77 Wait For Prompt On Uart \# testerId=${tester1} 78 Write Line To Uart ifconfig eth0 hw ether ${MAC_ADDR1} testerId=${tester1} 79 80 # MTU size must be decreased due to limiations of the driver 81 Wait For Prompt On Uart \# testerId=${tester0} 82 Write Line To Uart ifconfig eth0 mtu 440 up ${IP_ADDR0} testerId=${tester0} waitForEcho=false 83 Wait For Prompt On Uart \# testerId=${tester1} 84 Write Line To Uart ifconfig eth0 mtu 440 up ${IP_ADDR1} testerId=${tester1} waitForEcho=false 85 86 Provides booted-linux 87 88Should Ping 89 Requires booted-linux 90 Test Ping 91 92Should Ping Large Payload 93 Requires booted-linux 94 Test Ping packet_size=3200 95