blob: 99a4413d32210f7f5fe779cdb1525f02542ae63f [file] [log] [blame]
[!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")