| [!fuzz] skip |
| [short] skip |
| env GOCACHE=$WORK/cache |
| |
| # FuzzA attempts to cause the mutator to create duplicate inputs that generate |
| # new coverage. Previously this would trigger a corner case when the fuzzer |
| # had an execution limit, causing it to deadlock and sit in the coordinator |
| # loop indefinitely, failing to exit once the limit had been exhausted. |
| |
| go test -fuzz=FuzzA -fuzztime=100x -parallel=1 |
| |
| -- go.mod -- |
| module m |
| |
| go 1.16 |
| -- fuzz_test.go -- |
| package fuzz_test |
| |
| import ( |
| "fmt" |
| "testing" |
| ) |
| |
| func FuzzA(f *testing.F) { |
| f.Add([]byte("seed")) |
| i := 0 |
| f.Fuzz(func(t *testing.T, b []byte) { |
| i++ |
| if string(b) == "seed" { |
| if i == 0 { |
| fmt.Println("a") |
| } else if i > 1 { |
| fmt.Println("b") |
| } |
| } |
| }) |
| } |