forked from cerc-io/plugeth
metrics: improve TestTimerFunc (#20818)
The test failed due to what appears to be fluctuations in time.Sleep, which is not the actual method under test. This change modifies it so we compare the metered Max to the actual time instead of the desired time.
This commit is contained in:
parent
3b69c14f5d
commit
32d31c31af
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user