diff options
| author | Taras Madan <tarasmadan@google.com> | 2023-07-21 11:51:35 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2023-07-24 09:12:13 +0000 |
| commit | a36fe24b8383f6cd9b3519cd3eabdb9675d8992d (patch) | |
| tree | 3fef9a57760ccc4013289acd60e94e083db466e6 /tools/syz-testbuild/testbuild.go | |
| parent | 7549a7e1b57831cf6b08ce4700fc6e53417919f9 (diff) | |
all: use errors.As instead of .(type)
Diffstat (limited to 'tools/syz-testbuild/testbuild.go')
| -rw-r--r-- | tools/syz-testbuild/testbuild.go | 31 |
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: |
