fix(metrics): update go-flow-metrics and fix tests for upstream changes
@@ -48,8 +48,8 @@ func round(bwc *BandwidthCounter, b *testing.B) {
b.StopTimer()
}
-// Allow 7% errors for bw calculations.
-const acceptableError = 0.07
+// Allow 1% errors for bw calculations.
+const acceptableError = 0.01
func TestBandwidthCounter(t *testing.T) {
bwc := NewBandwidthCounter()
@@ -62,12 +62,19 @@ func TestBandwidthCounter(t *testing.T) {
proto := protocol.ID(fmt.Sprintf("proto-%d", j))
go func() {
defer wg.Done()
+
+ // make sure the bandwidth counters are active
+ bwc.LogSentMessage(100)
+ bwc.LogRecvMessage(50)
+ bwc.LogSentMessageStream(100, proto, p)
+ bwc.LogRecvMessageStream(50, proto, p)
+
<-start
t := time.NewTicker(100 * time.Millisecond)
defer t.Stop()
- for i := 0; i < 40; i++ {
+ for i := 0; i < 39; i++ {
bwc.LogSentMessage(100)
bwc.LogRecvMessage(50)
bwc.LogSentMessageStream(100, proto, p)
@@ -104,6 +111,7 @@ func TestBandwidthCounter(t *testing.T) {
}
}
+ time.Sleep(time.Second)
close(start)
time.Sleep(2*time.Second + 100*time.Millisecond)
@@ -149,17 +157,25 @@ func TestResetBandwidthCounter(t *testing.T) {
p := peer.ID("peer-0")
proto := protocol.ID("proto-0")
+ // We don't calculate bandwidth till we've been active for a second.
bwc.LogSentMessage(42)
bwc.LogRecvMessage(24)
bwc.LogSentMessageStream(100, proto, p)
bwc.LogRecvMessageStream(50, proto, p)
- time.Sleep(1 * time.Second)
+ time.Sleep(1*time.Second + time.Millisecond)
+
+ bwc.LogSentMessage(42)
+ bwc.LogRecvMessage(24)
+ bwc.LogSentMessageStream(100, proto, p)
+ bwc.LogRecvMessageStream(50, proto, p)
+
+ time.Sleep(1*time.Second + time.Millisecond)
{
stats := bwc.GetBandwidthTotals()
- assertEq(t, 42, stats.TotalOut)
- assertEq(t, 24, stats.TotalIn)
+ assertEq(t, 84, stats.TotalOut)
+ assertEq(t, 48, stats.TotalIn)
}
{
