Skip to content

Commit 85a3915

Browse files
committed
Move fuzz env to fuzz_env.go
1 parent d8f4c25 commit 85a3915

File tree

3 files changed

+42
-69
lines changed

3 files changed

+42
-69
lines changed

test/fuzz/fuzz_coverage_test.go

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package fuzz_test
22

33
import (
44
_ "embed"
5+
"github.com/antonmedv/expr/test/fuzz"
56
"github.com/stretchr/testify/require"
67
"strings"
78
"testing"
@@ -15,28 +16,7 @@ var fuzzCorpus string
1516
func TestFuzzExpr_Coverage(t *testing.T) {
1617
inputs := strings.Split(strings.TrimSpace(fuzzCorpus), "\n")
1718

18-
var env = map[string]any{
19-
"ok": true,
20-
"f64": .5,
21-
"f32": float32(.5),
22-
"i": 1,
23-
"i64": int64(1),
24-
"i32": int32(1),
25-
"array": []int{1, 2, 3, 4, 5},
26-
"list": []Foo{{"bar"}, {"baz"}},
27-
"foo": Foo{"bar"},
28-
"add": func(a, b int) int { return a + b },
29-
"div": func(a, b int) int { return a / b },
30-
"half": func(a float64) float64 { return a / 2 },
31-
"score": func(a int, x ...int) int {
32-
s := a
33-
for _, n := range x {
34-
s += n
35-
}
36-
return s
37-
},
38-
"greet": func(name string) string { return "Hello, " + name },
39-
}
19+
var env = fuzz.NewEnv()
4020

4121
for _, code := range inputs {
4222
t.Run(code, func(t *testing.T) {
@@ -48,15 +28,3 @@ func TestFuzzExpr_Coverage(t *testing.T) {
4828
})
4929
}
5030
}
51-
52-
type Foo struct {
53-
Bar string
54-
}
55-
56-
func (f Foo) String() string {
57-
return "foo"
58-
}
59-
60-
func (f Foo) Qux(s string) string {
61-
return f.Bar + s
62-
}

test/fuzz/fuzz_env.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package fuzz
2+
3+
func NewEnv() map[string]any {
4+
return map[string]any{
5+
"ok": true,
6+
"f64": .5,
7+
"f32": float32(.5),
8+
"i": 1,
9+
"i64": int64(1),
10+
"i32": int32(1),
11+
"array": []int{1, 2, 3, 4, 5},
12+
"list": []Foo{{"bar"}, {"baz"}},
13+
"foo": Foo{"bar"},
14+
"add": func(a, b int) int { return a + b },
15+
"div": func(a, b int) int { return a / b },
16+
"half": func(a float64) float64 { return a / 2 },
17+
"score": func(a int, x ...int) int {
18+
s := a
19+
for _, n := range x {
20+
s += n
21+
}
22+
return s
23+
},
24+
"greet": func(name string) string { return "Hello, " + name },
25+
}
26+
}
27+
28+
type Foo struct {
29+
Bar string
30+
}
31+
32+
func (f Foo) String() string {
33+
return "foo"
34+
}
35+
36+
func (f Foo) Qux(s string) string {
37+
return f.Bar + s
38+
}

test/fuzz/fuzz_test.go

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,6 @@ func FuzzExpr(f *testing.F) {
1818
f.Add(s)
1919
}
2020

21-
var env = map[string]any{
22-
"ok": true,
23-
"f64": .5,
24-
"f32": float32(.5),
25-
"i": 1,
26-
"i64": int64(1),
27-
"i32": int32(1),
28-
"array": []int{1, 2, 3, 4, 5},
29-
"list": []Foo{{"bar"}, {"baz"}},
30-
"foo": Foo{"bar"},
31-
"add": func(a, b int) int { return a + b },
32-
"div": func(a, b int) int { return a / b },
33-
"half": func(a float64) float64 { return a / 2 },
34-
"score": func(a int, x ...int) int {
35-
s := a
36-
for _, n := range x {
37-
s += n
38-
}
39-
return s
40-
},
41-
"greet": func(name string) string { return "Hello, " + name },
42-
}
43-
4421
skip := []*regexp.Regexp{
4522
regexp.MustCompile(`cannot fetch .* from .*`),
4623
regexp.MustCompile(`cannot get .* from .*`),
@@ -71,6 +48,8 @@ func FuzzExpr(f *testing.F) {
7148
regexp.MustCompile(`cannot parse .* as .*`),
7249
}
7350

51+
env := NewEnv()
52+
7453
f.Fuzz(func(t *testing.T, code string) {
7554
program, err := expr.Compile(code, expr.Env(env))
7655
if err != nil {
@@ -89,15 +68,3 @@ func FuzzExpr(f *testing.F) {
8968
}
9069
})
9170
}
92-
93-
type Foo struct {
94-
Bar string
95-
}
96-
97-
func (f Foo) String() string {
98-
return "foo"
99-
}
100-
101-
func (f Foo) Qux(s string) string {
102-
return f.Bar + s
103-
}

0 commit comments

Comments
 (0)