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