|
|
@@ -45,10 +45,23 @@ func TestTimerStop(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
func TestTimerFunc(t *testing.T) {
|
|
|
- tm := NewTimer()
|
|
|
- tm.Time(func() { time.Sleep(50e6) })
|
|
|
- if max := tm.Max(); 35e6 > max || max > 145e6 {
|
|
|
- t.Errorf("tm.Max(): 35e6 > %v || %v > 145e6\n", max, max)
|
|
|
+ var (
|
|
|
+ tm = NewTimer()
|
|
|
+ testStart = time.Now()
|
|
|
+ actualTime time.Duration
|
|
|
+ )
|
|
|
+ tm.Time(func() {
|
|
|
+ time.Sleep(50 * time.Millisecond)
|
|
|
+ actualTime = time.Since(testStart)
|
|
|
+ })
|
|
|
+ var (
|
|
|
+ drift = time.Millisecond * 2
|
|
|
+ measured = time.Duration(tm.Max())
|
|
|
+ ceil = actualTime + drift
|
|
|
+ floor = actualTime - drift
|
|
|
+ )
|
|
|
+ if measured > ceil || measured < floor {
|
|
|
+ t.Errorf("tm.Max(): %v > %v || %v > %v\n", measured, ceil, measured, floor)
|
|
|
}
|
|
|
}
|
|
|
|