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