1
0
mirror of https://github.com/golang/go synced 2024-11-05 11:36:10 -07:00

cmd/dist: fix computation of test timeout

When dist test was updated to run "go test" with multiple package
arguments at once, merging the logical test units into one execution,
the hack to give cmd/go twice as much time wasn't updated.

What was happening (even in the all.bash case) was that we were
merging together, say, "cmd/go" and "bytes", and because bar was
lexically earlier, the timeout calculation was based on package "byte",
even though we were actually running, say: "go test bytes cmd/go".

This explains why x/build/cmd/release was often flaky with its
all.bash, since cmd/go can't really finish in 3 minutes reliably
unless it's running by itself. If it has any competition, it runs
over.

Change-Id: I875c8c9e65940ce0ceff48215740dfadfaa89d3f
Reviewed-on: https://go-review.googlesource.com/111395
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
This commit is contained in:
Brad Fitzpatrick 2018-05-04 05:32:01 +00:00
parent bcdbd58ce4
commit 8aa316c139

13
src/cmd/dist/test.go vendored
View File

@ -273,10 +273,6 @@ func (t *tester) registerStdTest(pkg string) {
if t.runRx == nil || t.runRx.MatchString(testName) == t.runRxWant { if t.runRx == nil || t.runRx.MatchString(testName) == t.runRxWant {
stdMatches = append(stdMatches, pkg) stdMatches = append(stdMatches, pkg)
} }
timeoutSec := 180
if pkg == "cmd/go" {
timeoutSec *= 2
}
t.tests = append(t.tests, distTest{ t.tests = append(t.tests, distTest{
name: testName, name: testName,
heading: "Testing packages.", heading: "Testing packages.",
@ -288,6 +284,15 @@ func (t *tester) registerStdTest(pkg string) {
timelog("start", dt.name) timelog("start", dt.name)
defer timelog("end", dt.name) defer timelog("end", dt.name)
ranGoTest = true ranGoTest = true
timeoutSec := 180
for _, pkg := range stdMatches {
if pkg == "cmd/go" {
timeoutSec *= 2
break
}
}
args := []string{ args := []string{
"test", "test",
"-short", "-short",