[short] skip
[!fuzz-instrumented] skip

env GOCACHE=$WORK/cache
! go test -fuzz=FuzzDead -v
# This is a somewhat inexact check, but since we don't prefix the error with anything
# and as the error suffix is platform dependent, this is the best we can do. In the
# deadlock failure case, the test will just deadlock and timeout anyway, so it should
# be clear that that failure mode is different.
stdout 'open'

-- go.mod --
module test

-- cov_test.go --
package dead

import (
	"os"
	"path/filepath"
	"testing"
	"time"
)

func FuzzDead(f *testing.F) {
	go func() {
		c := filepath.Join(os.Getenv("GOCACHE"), "fuzz", "test", "FuzzDead")
		t := time.NewTicker(time.Second)
		for range t.C {
			files, _ := os.ReadDir(c)
			if len(files) > 0 {
				os.RemoveAll(c)
			}
		}
	}()

	f.Fuzz(func(t *testing.T, b []byte) {
		if len(b) == 8 &&
			b[0] == 'h' &&
			b[1] == 'e' &&
			b[2] == 'l' &&
			b[3] == 'l' &&
			b[4] == 'o' &&
			b[5] == ' ' &&
			b[6] == ':' &&
			b[7] == ')' {
			return
		}
	})
}
