]> Cypherpunks repositories - gostls13.git/commitdiff
testing: document f.Fuzz requirement to not change underlying data
authorKatie Hockman <katie@golang.org>
Tue, 5 Oct 2021 17:05:09 +0000 (13:05 -0400)
committerKatie Hockman <katie@golang.org>
Tue, 5 Oct 2021 20:15:01 +0000 (20:15 +0000)
Updates #48606

Change-Id: I6d555fdefccd842fb65ec8d630b4808bcb54a825
Reviewed-on: https://go-review.googlesource.com/c/go/+/353977
Trust: Katie Hockman <katie@golang.org>
Run-TryBot: Katie Hockman <katie@golang.org>
Reviewed-by: Jay Conrod <jayconrod@google.com>
src/testing/fuzz.go

index 771917b0695b1053f7008e8c573aba89452b1c8e..60e2603da993e7837b3cff335bbc859b370376fc 100644 (file)
@@ -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")