mirror of
https://github.com/golang/go
synced 2024-11-12 10:00:25 -07:00
runtime: deflake TestGoroutineProfileTrivial
Failed at https://storage.googleapis.com/go-build-log/9875de36/nacl-amd64p32_931ba6cf.log Change-Id: I2bc204ed58da543ee2534b69c29c8e8485d54683 Reviewed-on: https://go-review.googlesource.com/19155 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
f309bf3eef
commit
1c6a35b4fe
@ -310,13 +310,22 @@ func TestAppendSliceGrowth(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGoroutineProfileTrivial(t *testing.T) {
|
||||
n1, ok := GoroutineProfile(nil) // should fail, there's at least 1 goroutine
|
||||
if n1 < 1 || ok {
|
||||
t.Fatalf("GoroutineProfile(nil) = %d, %v, want >0, false", n1, ok)
|
||||
}
|
||||
|
||||
n2, ok := GoroutineProfile(make([]StackRecord, n1))
|
||||
if n2 != n1 || !ok {
|
||||
t.Fatalf("GoroutineProfile(%d) = %d, %v, want %d, true", n1, n2, ok, n1)
|
||||
// Calling GoroutineProfile twice in a row should find the same number of goroutines,
|
||||
// but it's possible there are goroutines just about to exit, so we might end up
|
||||
// with fewer in the second call. Try a few times; it should converge once those
|
||||
// zombies are gone.
|
||||
for i := 0; ; i++ {
|
||||
n1, ok := GoroutineProfile(nil) // should fail, there's at least 1 goroutine
|
||||
if n1 < 1 || ok {
|
||||
t.Fatalf("GoroutineProfile(nil) = %d, %v, want >0, false", n1, ok)
|
||||
}
|
||||
n2, ok := GoroutineProfile(make([]StackRecord, n1))
|
||||
if n2 == n1 && ok {
|
||||
break
|
||||
}
|
||||
t.Logf("GoroutineProfile(%d) = %d, %v, want %d, true", n1, n2, ok, n1)
|
||||
if i >= 10 {
|
||||
t.Fatalf("GoroutineProfile not converging")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user