Skip to content

Commit

Permalink
metrics: improve TestTimerFunc (ethereum#20818)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
holiman authored and enriquefynn committed Feb 15, 2021
1 parent 00f0dd5 commit 26ac766
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions metrics/timer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

Expand Down

0 comments on commit 26ac766

Please sign in to comment.