Message ID | 20170706144227.36580-14-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Roger Pau Monne writes ("[PATCH v4 13/16] 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. ... > - if {$need_build_host} { catching-otherwise broken allocate-build-host } > + if {[llength $need_build_host]} { > + catching-otherwise broken allocate-build-host $need_build_host > + } I think you mean + if {[llength $need_build_host]} { + catching-otherwise broken { allocate-build-host $need_build_host } + } catching-otherwise takes a script as its second argument. The script can be a whole { } block and can refer to variables in the same scope (since it is invoked with uplevel). Ie, catching-otherwise is a user-defined control construct. You can use it like "if" or something. The omission of the braces in the old code is simply because if the code to be executed is a single argumentless procedure call, they aren't needed. So: > - 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] Instead: + catching-otherwise broken { + prepare-build-host-[string tolower $need_build_host] + } > + } > -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 } I wish I had made these line up neatly! Sorry. Ian.
On Thu, Jul 06, 2017 at 04:37:10PM +0100, Ian Jackson wrote: > Roger Pau Monne writes ("[PATCH v4 13/16] 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. > ... > > - if {$need_build_host} { catching-otherwise broken allocate-build-host } > > + if {[llength $need_build_host]} { > > + catching-otherwise broken allocate-build-host $need_build_host > > + } > > I think you mean > > + if {[llength $need_build_host]} { > + catching-otherwise broken { allocate-build-host $need_build_host } > + } > > catching-otherwise takes a script as its second argument. The script > can be a whole { } block and can refer to variables in the same scope > (since it is invoked with uplevel). > > Ie, catching-otherwise is a user-defined control construct. You can > use it like "if" or something. The omission of the braces in the old > code is simply because if the code to be executed is a single > argumentless procedure call, they aren't needed. Heh, I told you I would try to do it the C way ;). Thanks for the comment, it's now fixed. > So: > > > - 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] > > Instead: > > + catching-otherwise broken { > + prepare-build-host-[string tolower $need_build_host] > + } > > + } > > > -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 } > > I wish I had made these line up neatly! Sorry. Would you like me to align the '{ return ...' block (align on the first { of the body). Roger.
Roger Pau Monne writes ("Re: [PATCH v4 13/16] osstest: change the meaning of need_build_host"): > On Thu, Jul 06, 2017 at 04:37:10PM +0100, Ian Jackson wrote: > > Roger Pau Monne writes ("[PATCH v4 13/16] osstest: change the meaning of need_build_host"): > > > -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 } > > > > I wish I had made these line up neatly! Sorry. > > Would you like me to align the '{ return ...' block (align on the > first { of the body). If you feel like it that would be nice :-). Ian.
diff --git a/sg-run-job b/sg-run-job index 87d81085..2ee57ace 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,10 @@ 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 +100,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 +121,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 +676,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 +707,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
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 v3: - New in this version (split from patch). --- sg-run-job | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-)