From c60c7ec38314effb64ea1db58707960326cde7af Mon Sep 17 00:00:00 2001 From: tycho garen Date: Fri, 17 Jun 2022 13:28:12 -0400 Subject: [PATCH] probablistic test --- internal/p2p/peermanager_test.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/p2p/peermanager_test.go b/internal/p2p/peermanager_test.go index 085d9ee81..05cbd731a 100644 --- a/internal/p2p/peermanager_test.go +++ b/internal/p2p/peermanager_test.go @@ -1781,17 +1781,24 @@ func TestPeerManager_Advertise(t *testing.T) { require.Empty(t, peerManager.Advertise(aID, 0)) // Asking for 2 addresses should get two addresses - // the content of the list when there are two - addrs := peerManager.Advertise(dID, 2) - require.Len(t, addrs, 2) - for _, addr := range addrs { - if dID == addr.NodeID { - t.Fatal("never advertise self") - } - if cID == addr.NodeID { - t.Fatal("should not have returned the lowest ranked peer") + // and ususally not the lowest ranked one + numLowestRanked := 0 + + for i := 0; i < 100; i++ { + addrs := peerManager.Advertise(dID, 2) + require.Len(t, addrs, 2) + for _, addr := range addrs { + if dID == addr.NodeID { + t.Fatal("never advertise self") + } + if cID == addr.NodeID { + numLowestRanked++ + } } } + if numLowestRanked > 20 { + t.Errorf("lowest ranked peer returned in results too often: %d", numLowestRanked) + } } func TestPeerManager_Advertise_Self(t *testing.T) {