| [!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") | |