diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-06-29 09:22:42 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-06-29 09:22:42 +0200 |
| commit | a736f2e8e6fca86c3e060bc3d83062cfdc6c391c (patch) | |
| tree | ef6e6238b8400c101663888d2d46c7d512307d24 | |
| parent | 68ce63c46891becd752fa1c0a0c3caaa98117832 (diff) | |
tools/syz-prog2c: allow to test build of the resulting program
| -rw-r--r-- | tools/syz-prog2c/prog2c.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/syz-prog2c/prog2c.go b/tools/syz-prog2c/prog2c.go index b7f13f971..371eccaa2 100644 --- a/tools/syz-prog2c/prog2c.go +++ b/tools/syz-prog2c/prog2c.go @@ -18,6 +18,7 @@ import ( var ( flagOS = flag.String("os", runtime.GOOS, "target os") flagArch = flag.String("arch", runtime.GOARCH, "target arch") + flagBuild = flag.Bool("build", false, "also build the generated program") flagThreaded = flag.Bool("threaded", false, "create threaded program") flagCollide = flag.Bool("collide", false, "create collide program") flagRepeat = flag.Bool("repeat", false, "repeat program infinitely or not") @@ -87,4 +88,14 @@ func main() { src = formatted } os.Stdout.Write(src) + if !*flagBuild { + return + } + bin, err := csource.Build(target, src) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to build C source: %v\n", err) + os.Exit(1) + } + os.Remove(bin) + fmt.Fprintf(os.Stderr, "binary build OK\n") } |
