# TODO(jayconrod): support shared memory on more platforms.
[!darwin] [!linux] [!windows] 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)
		}
	})
}
