From 7f4443d5fa9248c1d0e9d07b2c502a46ca252db2 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 29 Dec 2015 12:10:01 -0500 Subject: [PATCH] testing: add clear panic for duplicate call to t.Parallel Change-Id: I155633b58e1823344a26c3edf11f5626fae080ee Reviewed-on: https://go-review.googlesource.com/18204 Reviewed-by: Brad Fitzpatrick --- src/testing/testing.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/testing/testing.go b/src/testing/testing.go index 2081365abf..c33a997372 100644 --- a/src/testing/testing.go +++ b/src/testing/testing.go @@ -293,7 +293,8 @@ var _ TB = (*B)(nil) // may be called simultaneously from multiple goroutines. type T struct { common - name string // Name of test. + name string // Name of test. + isParallel bool startParallel chan bool // Parallel tests will wait on this. } @@ -430,6 +431,10 @@ func (t *T) Parallel() { // We don't want to include the time we spend waiting for serial tests // in the test duration. Record the elapsed time thus far and reset the // timer afterwards. + if t.isParallel { + panic("testing: t.Parallel called multiple times") + } + t.isParallel = true t.duration += time.Since(t.start) t.signal <- (*T)(nil) // Release main testing loop <-t.startParallel // Wait for serial tests to finish -- 2.50.0