# Test that coverage instrumentation is working. Without the instrumentation
# it is _extremely_ unlikely that the fuzzer would produce this particular
# input in any reasonable amount of time.

[short] skip
[!fuzz-instrumented] skip
env GOCACHE=$WORK/cache

# TODO(#51484): enabled debugging info to help diagnose a deadlock in the fuzzer
env GODEBUG=fuzzdebug=1
! go test -fuzz=FuzzCov -v
! stderr 'cov instrumentation working'

-- go.mod --
module test

-- cov_test.go --
package cov

import "testing"

func FuzzCov(f *testing.F) {
	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] == ')' {
			panic("cov instrumentation working")
		}
	})
}
