Path: blob/master/tester/run-xv6-command.exp
909 views
#! /usr/bin/env expect proc shutdown {} { # send command to halt qemu (ctrl-a x) # https://stackoverflow.com/questions/27050473/how-to-send-ctrl-a-then-d-in-expect send "\x01"; send "x" # make sure to wait for it all to stop # (without this, script was terminating before qemu quit -> bad) expect eof } # turn off timeout (perhaps make this flexible later) set timeout -1 # build and launch xv6 on qemu spawn make [lindex $argv 0] -f [lindex $argv 1] qemu-nox trap { shutdown exit 0 } SIGINT # wait for initial prompt expect "init: starting sh\r" expect "$ " # send command as per command line send "[lindex $argv 2]\r" # wait for it to be done expect "$ " # shutdown qemu properly (avoid runaways) shutdown