diff options
| author | Bryan C. Mills <bcmills@google.com> | 2022-02-16 10:52:01 -0500 |
|---|---|---|
| committer | Bryan Mills <bcmills@google.com> | 2022-02-16 16:06:39 +0000 |
| commit | f985833dec19b0147db3c5c33d3bf0181891d458 (patch) | |
| tree | 73ea1d2b66e8867fc7efeb355a4f581ce1b4f2e4 /src/testing | |
| parent | 5d8d3878496918d51347422d651629975343b18e (diff) | |
| download | go-f985833dec19b0147db3c5c33d3bf0181891d458.tar.xz | |
testing: panic in Fuzz if the function returns a value
Otherwise, the behavior of a fuzz target that returns an error could
be confusing.
Fuzz is already documented to require a function “with no return
value”, so this fixes the implementation to match the existing
documentation.
Fixes #51222
Change-Id: I44ca7ee10960214c92f5ac066ac8484c8bb9cd6f
Reviewed-on: https://go-review.googlesource.com/c/go/+/386175
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Reviewed-by: Nooras Saba <saba@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/testing')
| -rw-r--r-- | src/testing/fuzz.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/testing/fuzz.go b/src/testing/fuzz.go index e1d7544f7a..b5e1339deb 100644 --- a/src/testing/fuzz.go +++ b/src/testing/fuzz.go @@ -227,6 +227,9 @@ func (f *F) Fuzz(ff any) { if fnType.NumIn() < 2 || fnType.In(0) != reflect.TypeOf((*T)(nil)) { panic("testing: fuzz target must receive at least two arguments, where the first argument is a *T") } + if fnType.NumOut() != 0 { + panic("testing: fuzz target must not return a value") + } // Save the types of the function to compare against the corpus. var types []reflect.Type |
