aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/aflow/action
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/aflow/action')
-rw-r--r--pkg/aflow/action/crash/reproduce.go9
-rw-r--r--pkg/aflow/action/kernel/build.go2
2 files changed, 8 insertions, 3 deletions
diff --git a/pkg/aflow/action/crash/reproduce.go b/pkg/aflow/action/crash/reproduce.go
index 33be02b27..15ada378d 100644
--- a/pkg/aflow/action/crash/reproduce.go
+++ b/pkg/aflow/action/crash/reproduce.go
@@ -52,6 +52,7 @@ func reproduce(ctx *aflow.Context, args reproduceArgs) (reproduceResult, error)
if err != nil {
return reproduceResult{}, err
}
+ const noCrash = "reproducer did not crash"
desc := fmt.Sprintf("kernel commit %v, kernel config hash %v, image hash %v,"+
" vm %v, vm config hash %v, C repro hash %v",
args.KernelCommit, hash.String(args.KernelConfig), hash.String(imageData),
@@ -91,7 +92,7 @@ func reproduce(ctx *aflow.Context, args reproduceArgs) (reproduceResult, error)
}
os.RemoveAll(cfg.Workdir)
if results[0].Error == nil {
- results[0].Error = errors.New("reproducer did not crash")
+ results[0].Error = errors.New(noCrash)
}
file, data := "", []byte(nil)
var crashErr *instance.CrashError
@@ -106,7 +107,11 @@ func reproduce(ctx *aflow.Context, args reproduceArgs) (reproduceResult, error)
return reproduceResult{}, err
}
if data, err := os.ReadFile(filepath.Join(dir, "error")); err == nil {
- return reproduceResult{}, errors.New(string(data))
+ err := errors.New(string(data))
+ if err.Error() == noCrash {
+ err = aflow.FlowError(err)
+ }
+ return reproduceResult{}, err
}
data, err := os.ReadFile(filepath.Join(dir, "report"))
return reproduceResult{
diff --git a/pkg/aflow/action/kernel/build.go b/pkg/aflow/action/kernel/build.go
index 5cc9fd796..594b33fb5 100644
--- a/pkg/aflow/action/kernel/build.go
+++ b/pkg/aflow/action/kernel/build.go
@@ -47,7 +47,7 @@ func buildKernel(ctx *aflow.Context, args buildArgs) (buildResult, error) {
compileCommnads := "compile_commands.json"
makeArgs = append(makeArgs, path.Base(image), compileCommnads)
if _, err := osutil.RunCmd(time.Hour, args.KernelSrc, "make", makeArgs...); err != nil {
- return err
+ return aflow.FlowError(err)
}
// Remove main intermediate build files, we don't need them anymore
// and they take lots of space. Keep generated source files.