diff mbox

[v5,14/17] osstest: change the meaning of need_build_host

Message ID 20170708074712.44451-15-roger.pau@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Roger Pau Monné July 8, 2017, 7:47 a.m. UTC
Make need_build_host store a string instead of a boolean. This is
later going to be expanded to handle the FreeBSD build jobs.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
---
Changes since v4:
 - Fix the usage of the catching-otherwise blocks.

Changes since v3:
 - New in this version (split from patch).
---
 sg-run-job | 34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)

Comments

Ian Jackson July 19, 2017, 3:48 p.m. UTC | #1
Roger Pau Monne writes ("[PATCH v5 14/17] osstest: change the meaning of need_build_host"):
> Make need_build_host store a string instead of a boolean. This is
> later going to be expanded to handle the FreeBSD build jobs.

This is all fine, but I have two style comments:

> +    if {[string match BUILD_* $nh]} {
>          set need_xen_hosts {}
> -        set need_build_host 1
> +        set need_build_host [string range $nh [expr [string first _ $nh] + 1] end]

This string range stuff is rather clunky.  How about

   if {[regsub {^BUILD_(.*)} $nh need_build_host]} {

?

> -    if {$need_build_host} { catching-otherwise broken prepare-build-host }
> +    if {[llength $need_build_host]} {
> +        catching-otherwise broken {
> +            prepare-build-host-[string tolower $need_build_host]

I might be tempted to not bother with the `string tolower' and simply
let the functions have SHOUTING in their names.  Up to you.

Thanks,
Ian.
diff mbox

Patch

diff --git a/sg-run-job b/sg-run-job
index b1f94f4d..65e0a834 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -52,12 +52,12 @@  proc run-job {job} {
     set skip_globs     [jobdb::read-runvar $flight $job skip_testids]
 
     set nh [need-hosts/$jobinfo(recipe)]
-    if {![string compare $nh BUILD]} {
+    if {[string match BUILD_* $nh]} {
         set need_xen_hosts {}
-        set need_build_host 1
+        set need_build_host [string range $nh [expr [string first _ $nh] + 1] end]
     } else {
         set need_xen_hosts $nh
-        set need_build_host 0
+        set need_build_host {}
     }
     set nested_layers_hosts {}
 
@@ -68,7 +68,9 @@  proc run-job {job} {
         eval run-ts broken  =             ts-hosts-allocate + $need_xen_hosts
     }
 
-    if {$need_build_host} { catching-otherwise broken allocate-build-host }
+    if {[llength $need_build_host]} {
+        catching-otherwise broken { allocate-build-host $need_build_host }
+    }
 
     if {$ok} { setstatus running                                          }
 
@@ -77,7 +79,11 @@  proc run-job {job} {
 
     if {$ok} { set syslog [spawn-ts broken = | ts-syslog-server]          }
 
-    if {$need_build_host} { catching-otherwise broken prepare-build-host }
+    if {[llength $need_build_host]} {
+        catching-otherwise broken {
+            prepare-build-host-[string tolower $need_build_host]
+        }
+    }
 
     per-host-ts broken  host-install/@(*) ts-host-install-twice
 
@@ -95,7 +101,7 @@  proc run-job {job} {
         set need_xen_hosts [lunappend nested_layers_hosts]
     }
 
-    if {$need_build_host && !$ok} {
+    if {[llength $need_build_host] && !$ok} {
 	run-ts  !broken capture-logs      ts-logs-capture + host
     }
 
@@ -116,7 +122,7 @@  proc run-job {job} {
 
     if {$ok} { setstatus pass                                             }
 
-    if {$need_build_host && $ok} { jobdb::preserve-task 90 }
+    if {[llength $need_build_host] && $ok} { jobdb::preserve-task 90 }
 
     if {!$ok} {
         jobdb::logputs stdout "job not ok"
@@ -671,11 +677,11 @@  proc need-hosts/host-examine-linux {} { examine-host-examine debian }
 
 #---------- builds ----------
 
-proc need-hosts/build {} { return BUILD }
-proc need-hosts/build-kern {} { return BUILD }
-proc need-hosts/build-libvirt {} { return BUILD }
-proc need-hosts/build-rumprun {} { return BUILD }
-proc need-hosts/build-xtf {} { return BUILD }
+proc need-hosts/build {}                { return BUILD_LINUX }
+proc need-hosts/build-kern {}           { return BUILD_LINUX }
+proc need-hosts/build-libvirt {}        { return BUILD_LINUX }
+proc need-hosts/build-rumprun {}        { return BUILD_LINUX }
+proc need-hosts/build-xtf {}            { return BUILD_LINUX }
 
 proc run-job/build {} {
     run-ts . = ts-xen-build
@@ -702,11 +708,11 @@  proc run-job/build-xtf {} {
     run-ts . = ts-xtf-build
 }
 
-proc allocate-build-host {} {
+proc allocate-build-host {ostype} {
     global jobinfo
     run-ts broken = ts-hosts-allocate + host
 }
-proc prepare-build-host {} {
+proc prepare-build-host-linux {} {
     global jobinfo
     run-ts broken host-install(*) ts-host-install-twice
     run-ts . host-build-prep ts-xen-build-prep