Merge pull request #655 from prometheus/beorn7/test

Unflake TestGoCollectorGoroutines
This commit is contained in:
Björn Rabenstein 2019-10-15 13:19:50 +02:00 committed by GitHub
commit c13325c862
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -44,9 +44,14 @@ func TestGoCollectorGoroutines(t *testing.T) {
go func() { go func() {
c.Collect(metricCh) c.Collect(metricCh)
go func(c <-chan struct{}) { for i := 1; i <= 10; i++ {
<-c // Start 10 goroutines to be sure we'll detect an
}(endGoroutineCh) // increase even if unrelated goroutines happen to
// terminate during this test.
go func(c <-chan struct{}) {
<-c
}(endGoroutineCh)
}
<-waitCh <-waitCh
c.Collect(metricCh) c.Collect(metricCh)
close(endCollectionCh) close(endCollectionCh)
@ -73,9 +78,8 @@ func TestGoCollectorGoroutines(t *testing.T) {
continue continue
} }
if diff := int(pb.GetGauge().GetValue()) - old; diff != 1 { if diff := old - int(pb.GetGauge().GetValue()); diff > -1 {
// TODO: This is flaky in highly concurrent situations. t.Errorf("want at least one new goroutine, got %d fewer", diff)
t.Errorf("want 1 new goroutine, got %d", diff)
} }
case <-time.After(1 * time.Second): case <-time.After(1 * time.Second):
t.Fatalf("expected collect timed out") t.Fatalf("expected collect timed out")