blob: a47592acf30a2f37874ad6d1b48ef33a2f9e935f [file] [log] [blame]
*** Variables ***
${SWITCH} switch
${ETHERNET} sysbus.emac0
${UART} sysbus.lpuart2
${TFTP_BIN} https://dl.antmicro.com/projects/renode/mr_canhubk3--zephyr-samples_tftp_client.elf-s_4221436-4506026fa27d356a09719cc60c1750449b11cc80
${EMAC_PERIPHERAL} SEPARATOR=${\n}
... """
... emac0: Network.S32K3XX_EMAC @ sysbus 0x40480000
... ${SPACE*4}systemClockFrequency: 50000000
... ${SPACE*4}IRQ->nvic0@105
... ${SPACE*4}Channel0TX->nvic0@106
... ${SPACE*4}Channel0RX->nvic0@107
... """
*** Keywords ***
Create Machine
[Arguments] ${elf}
Execute Command mach create
Execute Command machine LoadPlatformDescription @platforms/cpus/nxp-s32k388.repl
# The test binary is built for s32k344 as Zephyr currently doesn't support s32k388. Due to that mismatch we
# need to change the ethernet controller to match what software expects.
Execute Command sysbus Unregister sysbus.gmac0
Execute Command machine LoadPlatformDescriptionFromString ${EMAC_PERIPHERAL}
${reset_macro}= Catenate SEPARATOR=${\n}
... """
... sysbus LoadELF @${elf}
... sysbus.cpu0 VectorTableOffset `sysbus GetSymbolAddress "_vector_table"`
... """
Execute Command macro reset${\n}${reset_macro}
Execute Command runMacro $reset
*** Test Cases ***
Should Transfer Files via TFTP
${test_file}= Allocate Temporary File
Create File ${test_file} hello!\n
Create Machine ${TFTP_BIN}
Execute Command emulation CreateSwitch "${SWITCH}"
Execute Command emulation CreateNetworkServer "server" "192.0.2.2"
Execute Command connector Connect server ${SWITCH}
Execute Command server StartTFTP 69
Execute Command server.tftp ServeFile @${test_file} "file1.bin"
Execute Command server.tftp LogReceivedFiles true
Execute Command connector Connect ${ETHERNET} ${SWITCH}
Create Terminal Tester ${UART}
Create Log Tester 1
Wait For Line On UART Run TFTP client
Wait For Line On UART Received data:
Wait For Line On UART 68 65 6c 6c 6f 21 0a\\s+|hello!\. treatAsRegex=true
Wait For Line On UART TFTP client get done
Wait For Line On UART TFTP client put done
Wait For Log Entry Received file 'newfile.bin': Lorem ipsum dolor sit amet, consectetur adipiscing elit