From: Katie Hockman Date: Tue, 5 Oct 2021 17:05:09 +0000 (-0400) Subject: testing: document f.Fuzz requirement to not change underlying data X-Git-Tag: go1.18beta1~1044 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0b4d4998d57936cf8bb2566f5f3e36eb70892ca4;p=gostls13.git testing: document f.Fuzz requirement to not change underlying data Updates #48606 Change-Id: I6d555fdefccd842fb65ec8d630b4808bcb54a825 Reviewed-on: https://go-review.googlesource.com/c/go/+/353977 Trust: Katie Hockman Run-TryBot: Katie Hockman Reviewed-by: Jay Conrod --- diff --git a/src/testing/fuzz.go b/src/testing/fuzz.go index 771917b069..60e2603da9 100644 --- a/src/testing/fuzz.go +++ b/src/testing/fuzz.go @@ -299,11 +299,12 @@ var supportedTypes = map[reflect.Type]bool{ // This function sould be fast and deterministic, and its behavior should not // depend on shared state. No mutatable input arguments, or pointers to them, // should be retained between executions of the fuzz function, as the memory -// backing them may be mutated during a subsequent invocation. +// backing them may be mutated during a subsequent invocation. ff must not +// modify the underlying data of the arguments provided by the fuzzing engine. // -// When fuzzing, F.Fuzz does not return until a problem is found, time runs -// out (set with -fuzztime), or the test process is interrupted by a signal. -// F.Fuzz should be called exactly once unless F.Skip or F.Fail is called. +// When fuzzing, F.Fuzz does not return until a problem is found, time runs out +// (set with -fuzztime), or the test process is interrupted by a signal. F.Fuzz +// should be called exactly once, unless F.Skip or F.Fail is called beforehand. func (f *F) Fuzz(ff interface{}) { if f.fuzzCalled { panic("testing: F.Fuzz called more than once")