aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-10-14 18:24:27 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-10-16 14:21:54 +0200
commit9444f97045cd7c64517f4dbbee316c2e85925054 (patch)
tree21a6e2c21c87057b81683a588291d8b6adceaea9 /tools
parent419e3a859c0e84369b87dfffc174032f5d1b944a (diff)
tools/syz-stress: allow to specify target OS
Diffstat (limited to 'tools')
-rw-r--r--tools/syz-stress/stress.go14
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)