From: Dmitriy Vyukov Date: Fri, 8 Feb 2013 15:24:50 +0000 (+0400) Subject: runtime/race: deflake tests X-Git-Tag: go1.1rc2~1105 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0a9f1ab8bb68835bf66faf9c7a925003c6087c4e;p=gostls13.git runtime/race: deflake tests With the new scheduler races in the tests are reported during execution of other tests. The change joins goroutines started during the tests. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7310066 --- diff --git a/src/pkg/runtime/race/testdata/mop_test.go b/src/pkg/runtime/race/testdata/mop_test.go index fa92182fa2..f2daa37301 100644 --- a/src/pkg/runtime/race/testdata/mop_test.go +++ b/src/pkg/runtime/race/testdata/mop_test.go @@ -745,7 +745,8 @@ func TestRaceCrawl(t *testing.T) { url := "dummyurl" depth := 3 seen := make(map[string]bool) - ch := make(chan int) + ch := make(chan int, 100) + var wg sync.WaitGroup var crawl func(string, int) crawl = func(u string, d int) { nurl := 0 @@ -759,12 +760,16 @@ func TestRaceCrawl(t *testing.T) { urls := [...]string{"a", "b", "c"} for _, uu := range urls { if _, ok := seen[uu]; !ok { + wg.Add(1) go crawl(uu, d-1) nurl++ } } + wg.Done() } + wg.Add(1) go crawl(url, depth) + wg.Wait() } func TestRaceIndirection(t *testing.T) { diff --git a/src/pkg/runtime/race/testdata/regression_test.go b/src/pkg/runtime/race/testdata/regression_test.go index 066ccbb38e..afe8cc5ec2 100644 --- a/src/pkg/runtime/race/testdata/regression_test.go +++ b/src/pkg/runtime/race/testdata/regression_test.go @@ -15,10 +15,13 @@ type LogImpl struct { } func NewLog() (l LogImpl) { + c := make(chan bool) go func() { _ = l + c <- true }() l = LogImpl{} + <-c return }