aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-testbuild/testbuild.go
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2023-07-21 11:51:35 +0200
committerTaras Madan <tarasmadan@google.com>2023-07-24 09:12:13 +0000
commita36fe24b8383f6cd9b3519cd3eabdb9675d8992d (patch)
tree3fef9a57760ccc4013289acd60e94e083db466e6 /tools/syz-testbuild/testbuild.go
parent7549a7e1b57831cf6b08ce4700fc6e53417919f9 (diff)
all: use errors.As instead of .(type)
Diffstat (limited to 'tools/syz-testbuild/testbuild.go')
-rw-r--r--tools/syz-testbuild/testbuild.go31
1 files changed, 18 insertions, 13 deletions
diff --git a/tools/syz-testbuild/testbuild.go b/tools/syz-testbuild/testbuild.go
index daadff3e3..a0d80f057 100644
--- a/tools/syz-testbuild/testbuild.go
+++ b/tools/syz-testbuild/testbuild.go
@@ -23,6 +23,7 @@ package main
import (
"encoding/json"
+ "errors"
"flag"
"fmt"
"log"
@@ -143,7 +144,8 @@ func test(repo vcs.Repo, bisecter vcs.Bisecter, kernelConfig []byte, env instanc
KernelConfig: bisectEnv.KernelConfig,
})
if err != nil {
- if verr, ok := err.(*osutil.VerboseError); ok {
+ var verr *osutil.VerboseError
+ if errors.As(err, &verr) {
log.Printf("BUILD BROKEN: %v", verr.Title)
saveLog(com.Hash, 0, verr.Output)
} else {
@@ -162,23 +164,26 @@ func test(repo vcs.Repo, bisecter vcs.Bisecter, kernelConfig []byte, env instanc
verdicts = append(verdicts, "OK")
continue
}
- switch err := res.Error.(type) {
- case *instance.TestError:
- if err.Boot {
- verdicts = append(verdicts, fmt.Sprintf("boot failed: %v", err))
+
+ var testError *instance.TestError
+ var crashError *instance.CrashError
+ switch {
+ case errors.As(res.Error, &testError):
+ if testError.Boot {
+ verdicts = append(verdicts, fmt.Sprintf("boot failed: %v", testError))
} else {
- verdicts = append(verdicts, fmt.Sprintf("basic kernel testing failed: %v", err))
+ verdicts = append(verdicts, fmt.Sprintf("basic kernel testing failed: %v", testError))
}
- output := err.Output
- if err.Report != nil {
- output = err.Report.Output
+ output := testError.Output
+ if testError.Report != nil {
+ output = testError.Report.Output
}
saveLog(com.Hash, i, output)
- case *instance.CrashError:
- verdicts = append(verdicts, fmt.Sprintf("crashed: %v", err))
- output := err.Report.Report
+ case errors.As(res.Error, &crashError):
+ verdicts = append(verdicts, fmt.Sprintf("crashed: %v", crashError))
+ output := crashError.Report.Report
if len(output) == 0 {
- output = err.Report.Output
+ output = crashError.Report.Output
}
saveLog(com.Hash, i, output)
default: