[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [OSSTEST PATCH 06/11] sg-run-job: Honour skip_testids runvar



This works like truncate_testids, except that the steps which match
are never run (truncate_testids skips steps *after* matching steps,
and also doesn't skip some things like log capture).

If the programmed testid for a step ends in `(*)' to request
substitutions of the stepno, the skip matching takes place against the
unsubstituted value (since it happens before a stepno is allocated).
There is no way to skip only some of a set of steps whose testids are
distinguished only by stepno.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 sg-run-job | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/sg-run-job b/sg-run-job
index 8cf3b94..8e625d9 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -41,14 +41,16 @@ proc per-host-finish {} {
 
 proc run-job {job} {
     global jobinfo builds flight ok truncate need_xen_hosts anyfailed
-    global nested_layers_hosts truncate_globs
+    global nested_layers_hosts truncate_globs skip_globs anyskipped
 
     set ok 1
     set truncate 0
+    set anyskipped 0
     set anyfailed 0
     jobdb::prepare $job
 
     set truncate_globs [jobdb::read-runvar $flight $job truncate_testids]
+    set skip_globs     [jobdb::read-runvar $flight $job skip_testids]
 
     set nh [need-hosts/$jobinfo(recipe)]
     if {![string compare $nh BUILD]} {
@@ -97,7 +99,7 @@ proc run-job {job} {
         }
     }
 
-    if {$truncate} {
+    if {$truncate || $anyskipped} {
        if {$ok} { setstatus truncated                                     }
        set ok 0
     }
@@ -174,7 +176,7 @@ proc iffail-check {iffail okexpr iffail_status_var} {
 }
 
 proc spawn-ts {iffail testid args} {
-    global flight c jobinfo env truncate
+    global flight c jobinfo env truncate skip_globs anyskipped
 
     if {[file exists abort]} {
         jobdb::logputs stdout \
@@ -217,6 +219,13 @@ proc spawn-ts {iffail testid args} {
     }
     regsub {/\@} $testid $host_testid_suffix testid
 
+    if {[testid_matches_globs $testid $skip_globs]} {
+        set anyskipped 1
+        jobdb::logputs stdout \
+            "skipping - not executing $flight.$jobinfo(job) $args"
+        return {imm 1} ;# reap-ts will report success
+    }
+
     jobdb::spawn-step-begin $flight $jobinfo(job) $ts stepno
     regsub {\(\*\)$} $testid ($stepno) testid
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.