blob: 5ba76a3d4fea9af135b17d6284ca579ee6dde186 [file] [log] [blame]
[!fuzz] skip
[short] skip
# The fuzz function should be able to detect whether -timeout
# was set with T.Deadline. Note there is no F.Deadline, and
# there is no timeout while fuzzing, even if -fuzztime is set.
go test -run=FuzzDeadline -wantdeadline=true # -timeout defaults to 10m
go test -run=FuzzDeadline -timeout=0 -wantdeadline=false
! go test -run=FuzzDeadline -timeout=1s -wantdeadline=false
go test -run=FuzzDeadline -timeout=1s -wantdeadline=true
go test -fuzz=FuzzDeadline -timeout=0 -fuzztime=1s -wantdeadline=false
go test -fuzz=FuzzDeadline -timeout=0 -fuzztime=100x -wantdeadline=false
-- go.mod --
module fuzz
go 1.16
-- fuzz_deadline_test.go --
package fuzz_test
import (
"flag"
"testing"
)
var wantDeadline = flag.Bool("wantdeadline", false, "whether the test should have a deadline")
func FuzzDeadline(f *testing.F) {
f.Add("run once")
f.Fuzz(func (t *testing.T, _ string) {
if _, hasDeadline := t.Deadline(); hasDeadline != *wantDeadline {
t.Fatalf("function got %v; want %v", hasDeadline, *wantDeadline)
}
})
}