]> Cypherpunks repositories - gostls13.git/commit
testing: don't create unique subtest names while fuzzing
authorJay Conrod <jayconrod@google.com>
Wed, 6 Oct 2021 21:58:22 +0000 (14:58 -0700)
committerJay Conrod <jayconrod@google.com>
Tue, 12 Oct 2021 20:20:41 +0000 (20:20 +0000)
commitd032b2b2c8235ef25275405f6655866f2c81661d
tree7e443a16b168d0c189d16205b914a5296732e678
parent4186db6155ccd4cfcf71dee0bce566a097f49406
testing: don't create unique subtest names while fuzzing

T.Run uses a map[string]int64 to keep track of subtest names that may
be returned through T.Name. T.Name can't return duplicate names for
subtests started with T.Run.

If a fuzz target calls T.Run, this map takes a large amount of memory,
since there are a very large number of subtests that would
otherwise have duplicate names, and the map stores one entry per subtest.
The unique suffixes are not useful (and may be confusing) since the
full sequence of tests cannot be re-run deterministically.

This change deletes all entries in the map before each call to the
function being fuzzed. There is a slight change in the contract of
T.Name while fuzzing.

This change was discussed in CL 351452.

Fixes #44517

Change-Id: I3093a2e5568099ce54aca1006fac84a6fd2c3ddf
Reviewed-on: https://go-review.googlesource.com/c/go/+/354430
Trust: Jay Conrod <jayconrod@google.com>
Trust: Katie Hockman <katie@golang.org>
Trust: Bryan C. Mills <bcmills@google.com>
Run-TryBot: Jay Conrod <jayconrod@google.com>
Run-TryBot: Katie Hockman <katie@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
src/testing/fuzz.go
src/testing/match.go
src/testing/testing.go