From: Richard Miller Date: Wed, 6 Apr 2016 17:42:14 +0000 (+0100) Subject: test: make goprint.go wait for goroutine termination X-Git-Tag: go1.7beta1~857 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a25e368f44941c22406b2f88535ec9e812fd4dba;p=gostls13.git test: make goprint.go wait for goroutine termination Test goprint.go sometimes failed on a slow builder (plan9_arm) because of timing dependency. Instead of sleeping for a fixed time to allow the child goroutine to finish, wait explicitly for child termination by calling runtime.NumGoroutine until the returned value is 1. Fixes #15097 Change-Id: Ib3ef5ec3c8277083c774542f48bcd4ff2f79efde Reviewed-on: https://go-review.googlesource.com/21603 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick --- diff --git a/test/goprint.go b/test/goprint.go index cdaccf4f79..7cf6230fc6 100644 --- a/test/goprint.go +++ b/test/goprint.go @@ -8,9 +8,14 @@ package main -import "time" +import ( + "runtime" + "time" +) func main() { go println(42, true, false, true, 1.5, "world", (chan int)(nil), []int(nil), (map[string]int)(nil), (func())(nil), byte(255)) - time.Sleep(100*time.Millisecond) + for runtime.NumGoroutine() > 1 { + time.Sleep(10*time.Millisecond) + } }