From: Carl Henrik Lunde Date: Wed, 17 May 2017 17:37:33 +0000 (+0200) Subject: runtime/pprof: deflake TestGoroutineCounts X-Git-Tag: go1.9beta1~236 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2dc27839df7d51b0544c0ac8b2a0b8f030b7a90c;p=gostls13.git runtime/pprof: deflake TestGoroutineCounts 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 Reviewed-by: Austin Clements --- diff --git a/src/runtime/pprof/pprof_test.go b/src/runtime/pprof/pprof_test.go index 0d957ad848..c45735f254 100644 --- a/src/runtime/pprof/pprof_test.go +++ b/src/runtime/pprof/pprof_test.go @@ -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 {