[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 11/15] sg-run-job: Make catching-otherwise honour $ok
This is more regular and abolishes a number of explicit $ok tests in run-job. Of the call sites: * "catching-otherwise blocked check-not-blocked" near the top of run-job is soon after $ok is set, so NFC. * The other call sites in run-job all test $ok explicitly, so NFC. * The one call site outside run-job (in examine-host-examine) contains only calls to run-ts, and to examine-host-install-* which itself only contains similar calls. These all therefore honour $ok already. So NFC. While we are here: * Add a doc comment. * Do some slight whitespace fixups. Overall, no functional change. Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- sg-run-job | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sg-run-job b/sg-run-job index 66c2c19..654ba83 100755 --- a/sg-run-job +++ b/sg-run-job @@ -62,7 +62,7 @@ proc run-job {job} { } set nested_layers_hosts {} - catching-otherwise blocked check-not-blocked + catching-otherwise blocked check-not-blocked if {!$ok} return if {[llength $need_xen_hosts]} { @@ -73,19 +73,18 @@ proc run-job {job} { if {$ok} { setstatus running } - if {$ok && ![catch { info args prep-job/$jobinfo(recipe) }]} \ - { catching-otherwise fail prep-job/$jobinfo(recipe) } + if {![catch { info args prep-job/$jobinfo(recipe) }]} \ + { catching-otherwise fail prep-job/$jobinfo(recipe) } if {$ok} { set syslog [spawn-ts broken = | ts-syslog-server] } - if {$ok && $need_build_host} \ - { catching-otherwise broken prepare-build-host } + if {$need_build_host} { catching-otherwise broken prepare-build-host } per-host-ts broken host-install/@(*) ts-host-install-twice per-host-prep - if {$ok} { catching-otherwise fail run-job/$jobinfo(recipe) } + catching-otherwise fail run-job/$jobinfo(recipe) while 1 { per-host-finish @@ -126,8 +125,15 @@ proc run-job {job} { } proc catching-otherwise {failst script} { + # Executes $script. + # If job is already a failure (ie not $ok), skips it (ie does nothing). + # If any Tcl exception is thrown, declares the job a failure. + # (ie sets job status to $failst, and sets anyfailed to 1 and ok to 0) + global anyfailed flight jobinfo ok + if {!$ok} return + if {[catch { uplevel 1 $script } emsg]} { -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |