nuttx-riscv64/qemu-riscv-nsh64.exp

72 lines
1.4 KiB
Text
Executable file

#!/usr/bin/expect
## Expect Script for Testing NuttX with QEMU Emulator
## Wait at most 300 seconds
set timeout 300
## For every 1 character sent, wait 0.01 milliseconds
set send_slow {1 0.01}
## Start the QEMU Emulator for 64-bit RISC-V
spawn qemu-system-riscv64 \
-semihosting \
-M virt,aclint=on \
-cpu rv64 \
-bios none \
-kernel nuttx \
-nographic
## Wait for the prompt and enter `uname -a`
expect "nsh> "
send -s "uname -a\r"
## Wait for the prompt and enter `free`
expect "nsh> "
send -s "free\r"
## Wait for the prompt and enter `ps`
expect "nsh> "
send -s "ps\r"
## Wait for the prompt and enter `ls -l /dev`
expect "nsh> "
send -s "ls -l /dev\r"
## Wait for the prompt and enter `hello`
expect "nsh> "
send -s "hello\r"
## Wait for the prompt and enter `getprime`
expect "nsh> "
send -s "getprime\r"
## Wait for the prompt and enter `hello`
expect "nsh> "
send -s "hello\r"
## Wait for the prompt and enter `getprime`
expect "nsh> "
send -s "getprime\r"
## Wait for the prompt and enter `ostest`
expect "nsh> "
send -s "ostest\r"
## Check the response...
expect {
## If we see this message, exit normally
"ostest_main: Exiting with status 0" {
## Terminate the session: Ctrl-A x
send "\x01x"
puts "\n===== Test OK\n"
exit 0
}
## If timeout, exit with an error
timeout {
## Terminate the session: Ctrl-A x
send "\x01x"
puts "\n===== Error: Test Failed\n"
exit 1
}
}