[!fuzz] skip [short] skip go test -fuzz=FuzzA -fuzztime=100x fuzz_setenv_test.go -- fuzz_setenv_test.go -- package fuzz import ( "flag" "os" "testing" ) func FuzzA(f *testing.F) { if s := os.Getenv("TEST_FUZZ_SETENV_A"); isWorker() && s == "" { f.Fatal("environment variable not set") } else if !isWorker() && s != "" { f.Fatal("environment variable already set") } f.Setenv("TEST_FUZZ_SETENV_A", "A") if os.Getenv("TEST_FUZZ_SETENV_A") == "" { f.Fatal("Setenv did not set environment variable") } f.Fuzz(func(*testing.T, []byte) {}) } func FuzzB(f *testing.F) { if os.Getenv("TEST_FUZZ_SETENV_A") != "" { f.Fatal("environment variable not cleared after FuzzA") } f.Skip() } func isWorker() bool { f := flag.Lookup("test.fuzzworker") if f == nil { return false } get, ok := f.Value.(flag.Getter) if !ok { return false } return get.Get() == interface{}(true) }