]> Cypherpunks repositories - gostls13.git/commitdiff
runtime/pprof: deflake TestGoroutineCounts
authorCarl Henrik Lunde <chlunde@ifi.uio.no>
Wed, 17 May 2017 17:37:33 +0000 (19:37 +0200)
committerAustin Clements <austin@google.com>
Wed, 17 May 2017 18:53:33 +0000 (18:53 +0000)
TestGoroutineCounts was flaky when running on a system under load.
This happened on three builds the last couple of days.

Fix this by running this test with a single operating system thread, so
we do not depend on the operating system scheduler.  50 000 tests ran
without failure with the new version, the old version failed 0.5% of the
time.

Fixes #15156.

Change-Id: I1e5a18d0fef4f72cc9a56e376822b2849cdb0f8b
Reviewed-on: https://go-review.googlesource.com/43590
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/pprof/pprof_test.go

index 0d957ad848a3c01c733dfb8c9a512a9ae06781f0..c45735f2542e5d4786b1bcd40b7320326fe2f5fe 100644 (file)
@@ -602,6 +602,10 @@ func func3(c chan int) { <-c }
 func func4(c chan int) { <-c }
 
 func TestGoroutineCounts(t *testing.T) {
+       // Setting GOMAXPROCS to 1 ensures we can force all goroutines to the
+       // desired blocking point.
+       defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1))
+
        c := make(chan int)
        for i := 0; i < 100; i++ {
                switch {