aboutsummaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorKatie Hockman <katie@golang.org>2021-03-04 13:02:24 -0500
committerKatie Hockman <katie@golang.org>2021-03-04 18:46:53 +0000
commitb89483497a7349bb8dba9110e765f5ff1189f69d (patch)
treee7091a97d0c25afd3a23334e5d57eb74f2914603 /src/testing
parent354c77a108863a1ccae810c94453870f0678a828 (diff)
downloadgo-b89483497a7349bb8dba9110e765f5ff1189f69d.tar.xz
[dev.fuzz] testing: only let workers run fuzz targets
Previously, ever worker would run all of the unit tests, benchmarks, and examples. Only the single coordinator needs to do this. Change-Id: I0dfa7f79b390b6c3220d8ea646e2d2312eee6bb1 Reviewed-on: https://go-review.googlesource.com/c/go/+/298809 Trust: Katie Hockman <katie@golang.org> Run-TryBot: Katie Hockman <katie@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
Diffstat (limited to 'src/testing')
-rw-r--r--src/testing/testing.go32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/testing/testing.go b/src/testing/testing.go
index 152483d8ff..7ce794c5a8 100644
--- a/src/testing/testing.go
+++ b/src/testing/testing.go
@@ -1439,26 +1439,30 @@ func (m *M) Run() (code int) {
m.before()
defer m.after()
- deadline := m.startAlarm()
- haveExamples = len(m.examples) > 0
- testRan, testOk := runTests(m.deps.MatchString, m.tests, deadline)
- fuzzTargetsRan, fuzzTargetsOk := runFuzzTargets(m.deps, m.fuzzTargets)
- exampleRan, exampleOk := runExamples(m.deps.MatchString, m.examples)
- m.stopAlarm()
- if !testRan && !exampleRan && !fuzzTargetsRan && *matchBenchmarks == "" && *matchFuzz == "" {
- fmt.Fprintln(os.Stderr, "testing: warning: no tests to run")
- }
- if !testOk || !exampleOk || !fuzzTargetsOk || !runBenchmarks(m.deps.ImportPath(), m.deps.MatchString, m.benchmarks) || race.Errors() > 0 {
- fmt.Println("FAIL")
- m.exitCode = 1
- return
+ if !*isFuzzWorker {
+ // The fuzzing coordinator will already run all tests, examples,
+ // and benchmarks. Don't make the workers do redundant work.
+ deadline := m.startAlarm()
+ haveExamples = len(m.examples) > 0
+ testRan, testOk := runTests(m.deps.MatchString, m.tests, deadline)
+ fuzzTargetsRan, fuzzTargetsOk := runFuzzTargets(m.deps, m.fuzzTargets)
+ exampleRan, exampleOk := runExamples(m.deps.MatchString, m.examples)
+ m.stopAlarm()
+ if !testRan && !exampleRan && !fuzzTargetsRan && *matchBenchmarks == "" && *matchFuzz == "" {
+ fmt.Fprintln(os.Stderr, "testing: warning: no tests to run")
+ }
+ if !testOk || !exampleOk || !fuzzTargetsOk || !runBenchmarks(m.deps.ImportPath(), m.deps.MatchString, m.benchmarks) || race.Errors() > 0 {
+ fmt.Println("FAIL")
+ m.exitCode = 1
+ return
+ }
}
fuzzingRan, fuzzingOk := runFuzzing(m.deps, m.fuzzTargets)
if *matchFuzz != "" && !fuzzingRan {
fmt.Fprintln(os.Stderr, "testing: warning: no targets to fuzz")
}
- if !fuzzingOk && !*isFuzzWorker {
+ if !*isFuzzWorker && !fuzzingOk {
fmt.Println("FAIL")
m.exitCode = 1
return