Files
simulation_core/tests/unit-tests/zephyr-mode.robot

41 lines
2.1 KiB
Plaintext

*** Variables ***
${UART} sysbus.uart0
${MPFS_ICYCLE_TICKLESS_KERNEL_ELF} @https://dl.antmicro.com/projects/renode/zephyr-icicle-test_tickless_concept.elf-s_667256-3e789809fe48247fa36514fd7876468a76646c42
*** Keywords ***
Create Machine
Execute Command $elf=@https://dl.antmicro.com/projects/renode/zephyr-custom_k_busy_wait.elf-s_383952-e634ad4735a09c71058c885c75df67b8be827ce9
Execute Command mach create
Execute Command machine LoadPlatformDescription @platforms/cpus/sifive-fu740.repl
Execute Command sysbus LoadELF $elf
*** Test Cases ***
Should Pass 10 Second Wait
[Documentation] Tests enabling Zephyr mode, this test should execute in about 10-15 seconds real-time.
Create Machine
Create Terminal Tester ${UART}
Execute Command sysbus.s7 EnableZephyrMode
Start Emulation
Wait For Line On Uart Waiting for 10 seconds...
# k_busy_wait isn't accurate enough to reliably wait for exactly 10 seconds
Wait For Line On Uart Wait for 10 seconds completed timeout=10.1
# This test depends on correct time flow counting in Zephyr. It will fail if EnableZephyrMode with `disableIfSymbolsPresent` logic does not work.
Should Pass Zephyr "tickless_kernel" test suite on mpfs_icicle_polarfire with ZephyrMode enabled and symbols excluded
Execute Command using sysbus
Execute Command include @platforms/boards/mpfs-icicle-kit.repl
Execute Command sysbus LoadELF ${MPFS_ICYCLE_TICKLESS_KERNEL_ELF}
Create Terminal Tester sysbus.mmuart0
Create Log Tester 1
Execute Command e51 PerformanceInMips 80
Execute Command u54_1 IsHalted true
Execute Command u54_2 IsHalted true
Execute Command u54_3 IsHalted true
Execute Command u54_4 IsHalted true
Execute Command e51 EnableZephyrMode "CONFIG_TICKLESS_KERNEL"
Wait For Log Entry ZephyrMode is disabled because the symbol 'CONFIG_TICKLESS_KERNEL'
Wait For Line On Uart PROJECT EXECUTION SUCCESSFUL