From 2b39d86344608423138b648b98157470d3809ee7 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Wed, 5 Jan 2022 12:25:28 -0800 Subject: [PATCH] cmd/go: add fuzzing coverage test Adds a test script for fuzzing coverage instrumentation. Fixes #48654 Change-Id: Ieea7b4146bd5581baae869441cc1c652dd7485f5 Reviewed-on: https://go-review.googlesource.com/c/go/+/375736 Trust: Katie Hockman Reviewed-by: Katie Hockman Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker TryBot-Result: Gopher Robot --- src/cmd/go/testdata/script/test_fuzz_cov.txt | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/cmd/go/testdata/script/test_fuzz_cov.txt diff --git a/src/cmd/go/testdata/script/test_fuzz_cov.txt b/src/cmd/go/testdata/script/test_fuzz_cov.txt new file mode 100644 index 00000000000000..05b634889f335e --- /dev/null +++ b/src/cmd/go/testdata/script/test_fuzz_cov.txt @@ -0,0 +1,33 @@ +# 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 + +! go test -fuzz=FuzzCov +! 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") + } + }) +}