aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-26 19:17:45 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-26 19:17:45 +0200
commit21caae5df67f71ca6272f61fadf50786f5aee19b (patch)
tree2b9953b77f7ff5a220261222ff59361107f7d0fb
parent4dd045dff98c1d6ef289047988c8b87939446c4e (diff)
syz-ci: don't report transient errors during patch testing
If no instances crashed and at least one booted and completed testing successfully, report success. Fixes #641
-rw-r--r--syz-ci/jobs.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go
index a57779cc6..fbbb60228 100644
--- a/syz-ci/jobs.go
+++ b/syz-ci/jobs.go
@@ -228,9 +228,16 @@ func (jp *JobProcessor) test(job *Job) error {
if err != nil {
return err
}
+ // We can have transient errors and other errors of different types.
+ // We need to avoid reporting transient "failed to boot" or "failed to copy binary" errors.
+ // If any of the instances crash during testing, we report this with the highest priority.
+ // Then if any of the runs succeed, we report that (to avoid transient errors).
+ // If all instances failed to boot, then we report one of these errors.
+ anySuccess := false
var anyErr, testErr error
for _, res := range results {
if res == nil {
+ anySuccess = true
continue
}
anyErr = res
@@ -250,6 +257,9 @@ func (jp *JobProcessor) test(job *Job) error {
return nil
}
}
+ if anySuccess {
+ return nil
+ }
if testErr != nil {
return testErr
}