From 0dd9c6a01874c17d1f2632d556ce2c4e88c05899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Mon, 7 Aug 2017 16:30:38 +0200 Subject: [PATCH] run: add error checking to power on step --- tool/run/power_on/energenie | 2 ++ tool/run/power_on/linux | 2 ++ tool/run/power_on/netio | 2 ++ tool/run/power_on/qemu | 2 ++ tool/run/power_on/softreset | 9 +++++++++ tool/run/power_on/spike | 2 ++ tool/run/run | 7 ++++++- 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tool/run/power_on/energenie b/tool/run/power_on/energenie index eb5f2baa0f..bb19c57e24 100644 --- a/tool/run/power_on/energenie +++ b/tool/run/power_on/energenie @@ -33,4 +33,6 @@ proc run_power_on { } { exec curl -s -o /dev/null -d pw=$password http://$host/login.html exec curl -s -o /dev/null -d ctl$power_port=1 http://$host/status.html exec curl -s -o /dev/null http://$host/login.html + + return true } diff --git a/tool/run/power_on/linux b/tool/run/power_on/linux index 2b343f9f11..750c1efffb 100644 --- a/tool/run/power_on/linux +++ b/tool/run/power_on/linux @@ -10,6 +10,8 @@ proc run_power_on { } { eval spawn ./core set linux_spawn_id $spawn_id cd $linux_orig_pwd + + return true } diff --git a/tool/run/power_on/netio b/tool/run/power_on/netio index ff150ab049..b9770128ea 100644 --- a/tool/run/power_on/netio +++ b/tool/run/power_on/netio @@ -51,4 +51,6 @@ proc run_power_on { } { send -i $connection_id "port $power_port int\n" expect -i $connection_id "250 OK" } + + return true } diff --git a/tool/run/power_on/qemu b/tool/run/power_on/qemu index b939a9087d..db2161fc0d 100644 --- a/tool/run/power_on/qemu +++ b/tool/run/power_on/qemu @@ -97,4 +97,6 @@ proc run_power_on { } { eval spawn $qemu $qemu_args set qemu_spawn_id $spawn_id + + return true } diff --git a/tool/run/power_on/softreset b/tool/run/power_on/softreset index e9cdc5458f..a00ec62f47 100644 --- a/tool/run/power_on/softreset +++ b/tool/run/power_on/softreset @@ -57,4 +57,13 @@ proc run_power_on { } { send -i $connection_id "$relay_on\n" sleep 1 send -i $connection_id "$relay_off\n" + sleep 1 + close -i $connection_id + lassign [wait] pid spawnid os_error_flag value + + if {$value} { + return false + } + + return true } diff --git a/tool/run/power_on/spike b/tool/run/power_on/spike index 7cf35bb79a..536d583755 100644 --- a/tool/run/power_on/spike +++ b/tool/run/power_on/spike @@ -23,4 +23,6 @@ proc run_power_on { } { set spike "spike" eval spawn $spike $spike_args set spike_spawn_id $spawn_id + + return true } diff --git a/tool/run/run b/tool/run/run index c0a80a6426..3be0f84e63 100755 --- a/tool/run/run +++ b/tool/run/run @@ -158,7 +158,12 @@ proc run_genode_until {{wait_for_re forever} {timeout_value 0} {running_spawn_id set retry 3 while { $retry != 0 } { - run_power_on + if {[expr [run_power_on] == false]} { + puts "Power on step failed, retry." + sleep 3 + incr retry -1; + continue + } if {![run_load]} { puts "Load step failed, retry."