aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/compiler/fuzz.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-08-28 15:59:22 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-09-02 13:06:53 +0200
commita7206b24cac96c08aecf2f3b4cc3c2e555eec708 (patch)
tree80c678141148ce2eafaab5617f168bd840b8c8a6 /pkg/compiler/fuzz.go
parentaa51461a34f998908d10f551615ad242bdff8fe9 (diff)
pkg/compiler: check and generate types
Move most of the logic from sysgen to pkg/compiler. Update #217
Diffstat (limited to 'pkg/compiler/fuzz.go')
-rw-r--r--pkg/compiler/fuzz.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkg/compiler/fuzz.go b/pkg/compiler/fuzz.go
new file mode 100644
index 000000000..9372f6d1c
--- /dev/null
+++ b/pkg/compiler/fuzz.go
@@ -0,0 +1,25 @@
+// Copyright 2017 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+// +build gofuzz
+
+package compiler
+
+import (
+ "github.com/google/syzkaller/pkg/ast"
+)
+
+func Fuzz(data []byte) int {
+ eh := func(pos ast.Pos, msg string) {}
+ desc := ast.Parse(data, "", eh)
+ if desc == nil {
+ return 0
+ }
+ prog := Compile(desc, fuzzConsts, eh)
+ if prog == nil {
+ return 0
+ }
+ return 1
+}
+
+var fuzzConsts = map[string]uint64{"A": 1, "B": 2, "C": 3, "__NR_C": 4}