From 237035be543642614230c972b5089fc651f45ca1 Mon Sep 17 00:00:00 2001 From: vyzo Date: Fri, 8 Nov 2019 20:39:40 +0200 Subject: [PATCH] regression test for issue-65 --- sweeper_test.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sweeper_test.go diff --git a/sweeper_test.go b/sweeper_test.go new file mode 100644 index 0000000..6022778 --- /dev/null +++ b/sweeper_test.go @@ -0,0 +1,44 @@ +package flow + +import ( + "testing" + "time" +) + +// regression test for libp2p/go-libp2p-core#65 +func TestIdleInconsistency(t *testing.T) { + r := new(MeterRegistry) + m1 := r.Get("first") + m2 := r.Get("second") + m3 := r.Get("third") + + m1.Mark(10) + m2.Mark(20) + m3.Mark(30) + + // make m1 and m3 go idle + for i := 0; i < 30; i++ { + time.Sleep(time.Second) + m2.Mark(1) + } + + time.Sleep(time.Second) + + // re-activate m3 + m3.Mark(20) + time.Sleep(time.Second + time.Millisecond) + + // check the totals + if total := r.Get("first").Snapshot().Total; total != 10 { + t.Errorf("expected first total to be 10, got %d", total) + } + + if total := r.Get("second").Snapshot().Total; total != 50 { + t.Errorf("expected second total to be 50, got %d", total) + } + + if total := r.Get("third").Snapshot().Total; total != 50 { + t.Errorf("expected third total to be 50, got %d", total) + } + +}