From 2dc27839df7d51b0544c0ac8b2a0b8f030b7a90c Mon Sep 17 00:00:00 2001 From: Carl Henrik Lunde Date: Wed, 17 May 2017 19:37:33 +0200 Subject: [PATCH] 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 --- src/runtime/pprof/pprof_test.go | 4 ++++ 1 file changed, 4 insertions(+) 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 { -- 2.50.0