diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-10-14 18:24:27 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-10-16 14:21:54 +0200 |
| commit | 9444f97045cd7c64517f4dbbee316c2e85925054 (patch) | |
| tree | 21a6e2c21c87057b81683a588291d8b6adceaea9 /tools | |
| parent | 419e3a859c0e84369b87dfffc174032f5d1b944a (diff) | |
tools/syz-stress: allow to specify target OS
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/syz-stress/stress.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tools/syz-stress/stress.go b/tools/syz-stress/stress.go index 77be42299..608c216a1 100644 --- a/tools/syz-stress/stress.go +++ b/tools/syz-stress/stress.go @@ -22,6 +22,8 @@ import ( ) var ( + flagOS = flag.String("os", runtime.GOOS, "target os") + flagArch = flag.String("arch", runtime.GOARCH, "target arch") flagCorpus = flag.String("corpus", "", "corpus database") flagExecutor = flag.String("executor", "./syz-executor", "path to executor binary") flagOutput = flag.Bool("output", false, "print executor output to console") @@ -37,7 +39,7 @@ const programLength = 30 func main() { flag.Parse() - target, err := prog.GetTarget(runtime.GOOS, runtime.GOARCH) + target, err := prog.GetTarget(*flagOS, *flagArch) if err != nil { Fatalf("%v", err) } @@ -106,7 +108,7 @@ func execute(pid int, env *ipc.Env, p *prog.Prog) { if err != nil { fmt.Printf("failed to execute executor: %v\n", err) } - if failed || hanged || err != nil { + if failed || hanged || err != nil || *flagOutput { fmt.Printf("PROGRAM:\n%s\n", p.Serialize()) } if failed || hanged || err != nil || *flagOutput { @@ -134,6 +136,14 @@ func readCorpus(target *prog.Target) []*prog.Prog { } func buildCallList(target *prog.Target) map[*prog.Syscall]bool { + if *flagOS != runtime.GOOS { + // This is currently used on akaros, where syz-stress runs on host. + calls := make(map[*prog.Syscall]bool) + for _, c := range target.Syscalls { + calls[c] = true + } + return calls + } calls, err := host.DetectSupportedSyscalls(target) if err != nil { Logf(0, "failed to detect host supported syscalls: %v", err) |
