1
0
mirror of https://github.com/golang/go synced 2024-09-24 07:20:14 -06:00

time: increase slop for TestTicker

Also sleep a bit each time it fails, in case the system is overloaded.

Fixes #37332

Change-Id: Iabf3d0a27b5834c1e2a87c826b6206146b4f62c5
Reviewed-on: https://go-review.googlesource.com/c/go/+/313849
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
Ian Lance Taylor 2021-04-26 17:49:28 -07:00
parent f432d3fc41
commit 13e87cda00

View File

@ -52,9 +52,14 @@ func TestTicker(t *testing.T) {
t1 := Now() t1 := Now()
dt := t1.Sub(t0) dt := t1.Sub(t0)
target := 3 * delta * Duration(count/2) target := 3 * delta * Duration(count/2)
slop := target * 2 / 10 slop := target * 3 / 10
if dt < target-slop || dt > target+slop { if dt < target-slop || dt > target+slop {
errs = append(errs, fmt.Sprintf("%d %s ticks took %s, expected [%s,%s]", count, delta, dt, target-slop, target+slop)) errs = append(errs, fmt.Sprintf("%d %s ticks then %d %s ticks took %s, expected [%s,%s]", count/2, delta, count/2, delta*2, dt, target-slop, target+slop))
if dt > target+slop {
// System may be overloaded; sleep a bit
// in the hopes it will recover.
Sleep(Second / 2)
}
continue continue
} }
// Now test that the ticker stopped. // Now test that the ticker stopped.