[!fuzz] skip [short] skip env GOCACHE=$WORK/cache # 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) } }) }