| [!fuzz] skip |
| [short] skip |
| env GOCACHE=$WORK/cache |
| |
| # Tests which verify the behavior and command line output when |
| # running a fuzz target as a unit test. |
| |
| # Tests without -run. |
| |
| ! go test |
| stdout FAIL |
| stdout 'error here' |
| |
| ! go test -v |
| stdout FAIL |
| stdout 'error here' |
| stdout '=== RUN FuzzFoo/thisfails' |
| stdout '--- FAIL: FuzzFoo/thisfails' |
| stdout '=== RUN FuzzFoo/thispasses' |
| stdout '--- PASS: FuzzFoo/thispasses' |
| |
| # Tests where -run matches all seed corpora. |
| |
| ! go test -run FuzzFoo/this |
| stdout FAIL |
| stdout 'error here' |
| ! stdout 'no tests to run' |
| |
| ! go test -run /this |
| stdout FAIL |
| stdout 'error here' |
| ! stdout 'no tests to run' |
| |
| ! go test -v -run FuzzFoo/this |
| stdout FAIL |
| stdout 'error here' |
| stdout '=== RUN FuzzFoo/thisfails' |
| stdout '--- FAIL: FuzzFoo/thisfails' |
| stdout '=== RUN FuzzFoo/thispasses' |
| stdout '--- PASS: FuzzFoo/thispasses' |
| ! stdout 'no tests to run' |
| |
| ! go test -v -run /this |
| stdout FAIL |
| stdout 'error here' |
| stdout '=== RUN FuzzFoo/thisfails' |
| stdout '--- FAIL: FuzzFoo/thisfails' |
| stdout '=== RUN FuzzFoo/thispasses' |
| stdout '--- PASS: FuzzFoo/thispasses' |
| ! stdout 'no tests to run' |
| |
| # Tests where -run only matches one seed corpus which passes. |
| |
| go test -run FuzzFoo/thispasses |
| stdout ok |
| ! stdout 'no tests to run' |
| |
| go test -run /thispasses |
| stdout ok |
| ! stdout 'no tests to run' |
| |
| # Same tests in verbose mode |
| go test -v -run FuzzFoo/thispasses |
| stdout '=== RUN FuzzFoo/thispasses' |
| stdout '--- PASS: FuzzFoo/thispasses' |
| ! stdout '=== RUN FuzzFoo/thisfails' |
| ! stdout 'no tests to run' |
| |
| go test -v -run /thispasses |
| stdout '=== RUN FuzzFoo/thispasses' |
| stdout '--- PASS: FuzzFoo/thispasses' |
| ! stdout '=== RUN FuzzFoo/thisfails' |
| ! stdout 'no tests to run' |
| |
| # Tests where -run only matches one seed corpus which fails. |
| |
| ! go test -run FuzzFoo/thisfails |
| stdout FAIL |
| stdout 'error here' |
| ! stdout 'no tests to run' |
| |
| ! go test -run /thisfails |
| stdout FAIL |
| stdout 'error here' |
| ! stdout 'no tests to run' |
| |
| ! go test -v -run FuzzFoo/thisfails |
| stdout 'error here' |
| stdout '=== RUN FuzzFoo/thisfails' |
| stdout '--- FAIL: FuzzFoo/thisfails' |
| ! stdout '=== RUN FuzzFoo/thispasses' |
| ! stdout 'no tests to run' |
| |
| ! go test -v -run /thisfails |
| stdout 'error here' |
| stdout '=== RUN FuzzFoo/thisfails' |
| stdout '--- FAIL: FuzzFoo/thisfails' |
| ! stdout '=== RUN FuzzFoo/thispasses' |
| ! stdout 'no tests to run' |
| |
| # Tests where -run doesn't match any seed corpora. |
| |
| go test -run FuzzFoo/nomatch |
| stdout ok |
| |
| go test -run /nomatch |
| stdout ok |
| |
| go test -v -run FuzzFoo/nomatch |
| stdout '=== RUN FuzzFoo' |
| stdout '--- PASS: FuzzFoo' |
| stdout ok |
| ! stdout 'no tests to run' |
| |
| go test -v -run /nomatch |
| stdout '=== RUN FuzzFoo' |
| stdout '--- PASS: FuzzFoo' |
| stdout ok |
| ! stdout 'no tests to run' |
| |
| -- go.mod -- |
| module example.com/x |
| |
| go 1.16 |
| -- x_test.go -- |
| package x |
| |
| import "testing" |
| |
| func FuzzFoo(f *testing.F) { |
| f.Add("this is fine") |
| f.Fuzz(func(t *testing.T, s string) { |
| if s == "fails" { |
| t.Error("error here") |
| } |
| }) |
| } |
| -- testdata/fuzz/FuzzFoo/thisfails -- |
| go test fuzz v1 |
| string("fails") |
| -- testdata/fuzz/FuzzFoo/thispasses -- |
| go test fuzz v1 |
| string("passes") |