From d6e3cab983e98eb834e55b77dfabb448701c0967 Mon Sep 17 00:00:00 2001 From: tycho garen Date: Fri, 10 Jun 2022 12:47:53 -0400 Subject: [PATCH] fix tests --- internal/p2p/peermanager.go | 12 +++--- internal/p2p/peermanager_scoring_test.go | 4 +- internal/p2p/peermanager_test.go | 55 +++++++++++++----------- 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/internal/p2p/peermanager.go b/internal/p2p/peermanager.go index cea329ff0..004083d54 100644 --- a/internal/p2p/peermanager.go +++ b/internal/p2p/peermanager.go @@ -472,8 +472,7 @@ func (m *PeerManager) TryDialNext() (NodeAddress, error) { // We allow dialing MaxConnected+MaxConnectedUpgrade peers. Including // MaxConnectedUpgrade allows us to probe additional peers that have a // higher score than any other peers, and if successful evict it. - if m.options.MaxConnected > 0 && len(m.connected)+len(m.dialing) >= - int(m.options.MaxConnected)+int(m.options.MaxConnectedUpgrade) { + if m.options.MaxConnected > 0 && len(m.connected)+len(m.dialing) >= int(m.options.MaxConnected)+int(m.options.MaxConnectedUpgrade) { return NodeAddress{}, nil } @@ -811,8 +810,10 @@ func (m *PeerManager) Inactivate(peerID types.NodeID) error { m.mtx.Lock() defer m.mtx.Unlock() - peer := m.store.peers[peerID] - peer.Inactive = true + peer, ok := m.store.peers[peerID] + if !ok { + return nil + } return m.store.Set(*peer) } @@ -1352,7 +1353,8 @@ func (p *peerInfo) LastDialed() (time.Time, bool) { } } - // if we never modified last, then + // if we never modified last, then we should return it to the + // zero value if last.Add(1).IsZero() { last = last.Add(1) } diff --git a/internal/p2p/peermanager_scoring_test.go b/internal/p2p/peermanager_scoring_test.go index a45df0b72..e582e960f 100644 --- a/internal/p2p/peermanager_scoring_test.go +++ b/internal/p2p/peermanager_scoring_test.go @@ -34,7 +34,7 @@ func TestPeerScoring(t *testing.T) { t.Run("Synchronous", func(t *testing.T) { // update the manager and make sure it's correct - require.EqualValues(t, 0, peerManager.Scores()[id]) + require.EqualValues(t, DefaultMutablePeerScore, peerManager.Scores()[id]) // add a bunch of good status updates and watch things increase. for i := 1; i < 10; i++ { @@ -42,7 +42,7 @@ func TestPeerScoring(t *testing.T) { NodeID: id, Status: PeerStatusGood, }) - require.EqualValues(t, i, peerManager.Scores()[id]) + require.EqualValues(t, int(DefaultMutablePeerScore)+i, peerManager.Scores()[id]) } // watch the corresponding decreases respond to update diff --git a/internal/p2p/peermanager_test.go b/internal/p2p/peermanager_test.go index 47e8462a4..373a0abf0 100644 --- a/internal/p2p/peermanager_test.go +++ b/internal/p2p/peermanager_test.go @@ -169,7 +169,7 @@ func TestNewPeerManager_Persistence(t *testing.T) { require.Equal(t, map[types.NodeID]p2p.PeerScore{ aID: p2p.PeerScorePersistent, bID: 1, - cID: 0, + cID: p2p.PeerScore(p2p.DefaultMutablePeerScore), }, peerManager.Scores()) // Creating a new peer manager with the same database should retain the @@ -524,11 +524,11 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ PeerScores: map[types.NodeID]p2p.PeerScore{ - a.NodeID: 0, - b.NodeID: 1, - c.NodeID: 2, - d.NodeID: 3, - e.NodeID: 0, + a.NodeID: p2p.PeerScore(0 + p2p.DefaultMutablePeerScore), + b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(2 + p2p.DefaultMutablePeerScore), + d.NodeID: p2p.PeerScore(3 + p2p.DefaultMutablePeerScore), + e.NodeID: p2p.PeerScore(0 + p2p.DefaultMutablePeerScore), }, PersistentPeers: []types.NodeID{c.NodeID, d.NodeID}, MaxConnected: 2, @@ -605,7 +605,7 @@ func TestPeerManager_TryDialNext_UpgradeReservesPeer(t *testing.T) { c := p2p.NodeAddress{Protocol: "memory", NodeID: types.NodeID(strings.Repeat("c", 40))} peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ - PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: 1, c.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), c.NodeID: 1}, MaxConnected: 1, MaxConnectedUpgrade: 2, }) @@ -771,7 +771,10 @@ func TestPeerManager_DialFailed_UnreservePeer(t *testing.T) { c := p2p.NodeAddress{Protocol: "memory", NodeID: types.NodeID(strings.Repeat("c", 40))} peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ - PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: 1, c.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{ + b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + }, MaxConnected: 1, MaxConnectedUpgrade: 2, }) @@ -887,7 +890,7 @@ func TestPeerManager_Dialed_MaxConnectedUpgrade(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ MaxConnected: 2, MaxConnectedUpgrade: 1, - PeerScores: map[types.NodeID]p2p.PeerScore{c.NodeID: 1, d.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{c.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), d.NodeID: 1}, }) require.NoError(t, err) @@ -937,7 +940,7 @@ func TestPeerManager_Dialed_Upgrade(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ MaxConnected: 1, MaxConnectedUpgrade: 2, - PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: 1, c.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), c.NodeID: 1}, }) require.NoError(t, err) @@ -984,10 +987,10 @@ func TestPeerManager_Dialed_UpgradeEvenLower(t *testing.T) { MaxConnected: 2, MaxConnectedUpgrade: 1, PeerScores: map[types.NodeID]p2p.PeerScore{ - a.NodeID: 3, - b.NodeID: 2, - c.NodeID: 10, - d.NodeID: 1, + a.NodeID: p2p.PeerScore(3 + p2p.DefaultMutablePeerScore), + b.NodeID: p2p.PeerScore(2 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(10 + p2p.DefaultMutablePeerScore), + d.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), }, }) require.NoError(t, err) @@ -1040,9 +1043,9 @@ func TestPeerManager_Dialed_UpgradeNoEvict(t *testing.T) { MaxConnected: 2, MaxConnectedUpgrade: 1, PeerScores: map[types.NodeID]p2p.PeerScore{ - a.NodeID: 1, - b.NodeID: 2, - c.NodeID: 3, + a.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + b.NodeID: p2p.PeerScore(2 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(3 + p2p.DefaultMutablePeerScore), }, }) require.NoError(t, err) @@ -1161,8 +1164,8 @@ func TestPeerManager_Accepted_MaxConnectedUpgrade(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ PeerScores: map[types.NodeID]p2p.PeerScore{ - c.NodeID: 1, - d.NodeID: 2, + c.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + d.NodeID: p2p.PeerScore(2 + p2p.DefaultMutablePeerScore), }, MaxConnected: 1, MaxConnectedUpgrade: 1, @@ -1209,8 +1212,8 @@ func TestPeerManager_Accepted_Upgrade(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ PeerScores: map[types.NodeID]p2p.PeerScore{ - b.NodeID: 1, - c.NodeID: 1, + b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), }, MaxConnected: 1, MaxConnectedUpgrade: 2, @@ -1252,8 +1255,8 @@ func TestPeerManager_Accepted_UpgradeDialing(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ PeerScores: map[types.NodeID]p2p.PeerScore{ - b.NodeID: 1, - c.NodeID: 1, + b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + c.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), }, MaxConnected: 1, MaxConnectedUpgrade: 2, @@ -1428,7 +1431,7 @@ func TestPeerManager_EvictNext_WakeOnUpgradeDialed(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ MaxConnected: 1, MaxConnectedUpgrade: 1, - PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: p2p.PeerScore(p2p.DefaultMutablePeerScore + 1)}, }) require.NoError(t, err) @@ -1469,7 +1472,9 @@ func TestPeerManager_EvictNext_WakeOnUpgradeAccepted(t *testing.T) { peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{ MaxConnected: 1, MaxConnectedUpgrade: 1, - PeerScores: map[types.NodeID]p2p.PeerScore{b.NodeID: 1}, + PeerScores: map[types.NodeID]p2p.PeerScore{ + b.NodeID: p2p.PeerScore(1 + p2p.DefaultMutablePeerScore), + }, }) require.NoError(t, err)