aboutsummaryrefslogtreecommitdiff
path: root/src/internal
diff options
context:
space:
mode:
authorKatie Hockman <katie@golang.org>2021-10-22 15:59:15 -0400
committerKatie Hockman <katie@golang.org>2021-10-27 19:18:20 +0000
commit514ebaec358488d1dcf7253b9d05b4ad8c76c390 (patch)
treecf278164ff27016f8055cf992af2cb88117cde53 /src/internal
parent259735f97a2dfd33849eacef15047f5a0964498e (diff)
downloadgo-514ebaec358488d1dcf7253b9d05b4ad8c76c390.tar.gz
go-514ebaec358488d1dcf7253b9d05b4ad8c76c390.zip
internal/fuzz: don't deflake coverage found while fuzzing
Previously, the worker would attempt to deflake an input that was reported to have caused new coverage. The chances of a flake causing new coverage seem pretty low to me, and even if it was a flake that caused it, adding that input to the cache doesn't seem like a bad thing. The input is already going to be deflaked during minimization anyway. If by some off-chance the code is causing a lot of flaky coverage increases, and the user doesn't want minimization to occur, then setting -fuzzminimizetime=1x will deflake in the way they want without minimizing. This can be documented as needed. This fixes a bug where the mem.header().count could have been one too large if an unrecoverable crash occured while deflaking an input that caused code coverage. Fixes #49047 Change-Id: Ibdf893d7a89a46dd700702afb09e35623615390e Reviewed-on: https://go-review.googlesource.com/c/go/+/358094 Trust: Katie Hockman <katie@golang.org> Run-TryBot: Katie Hockman <katie@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Julie Qiu <julie@golang.org> Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/fuzz/worker.go17
1 files changed, 3 insertions, 14 deletions
diff --git a/src/internal/fuzz/worker.go b/src/internal/fuzz/worker.go
index b36ebe2a7e..388675f713 100644
--- a/src/internal/fuzz/worker.go
+++ b/src/internal/fuzz/worker.go
@@ -738,20 +738,9 @@ func (ws *workerServer) fuzz(ctx context.Context, args fuzzArgs) (resp fuzzRespo
return resp
}
if cov != nil {
- // Found new coverage. Before reporting to the coordinator,
- // run the same values once more to deflake.
- if !shouldStop() {
- dur, cov, errMsg = fuzzOnce(entry)
- if errMsg != "" {
- resp.Err = errMsg
- return resp
- }
- }
- if cov != nil {
- resp.CoverageData = cov
- resp.InterestingDuration = dur
- return resp
- }
+ resp.CoverageData = cov
+ resp.InterestingDuration = dur
+ return resp
}
if shouldStop() {
return resp