You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
Plaintext
50 lines
1.0 KiB
Plaintext
#! /usr/bin/env expect
|
|
|
|
##
|
|
# Wait for a specific output of a already running spawned process
|
|
#
|
|
proc wait_for_output { wait_for_re timeout_value running_spawn_id } {
|
|
global output
|
|
|
|
if {$wait_for_re == "forever"} {
|
|
set timeout -1
|
|
interact {
|
|
\003 {
|
|
send_user "Expect: 'interact' received 'strg+c' and was cancelled\n";
|
|
exit
|
|
}
|
|
-i $running_spawn_id
|
|
}
|
|
} else {
|
|
set timeout $timeout_value
|
|
}
|
|
|
|
expect {
|
|
-i $running_spawn_id -re $wait_for_re { }
|
|
eof { puts stderr "Error: Spawned process died unexpectedly"; exit -1 }
|
|
timeout { puts stderr "Error: Test execution timed out"; exit -1 }
|
|
}
|
|
set output $expect_out(buffer)
|
|
}
|
|
|
|
|
|
proc run_genode_until {{wait_for_re forever} {timeout_value 0} {running_spawn_id -1}} {
|
|
#
|
|
# If a running_spawn_id is specified, wait for the expected output
|
|
#
|
|
if {$running_spawn_id != -1} {
|
|
wait_for_output $wait_for_re $timeout_value $running_spawn_id
|
|
return
|
|
}
|
|
|
|
global image_dir spawn_id
|
|
|
|
spawn ./core
|
|
wait_for_output $wait_for_re $timeout_value $spawn_id
|
|
}
|
|
|
|
|
|
eval $env(baseSetup)
|
|
|
|
eval $env(testScript)
|