fix tests

This commit is contained in:
tycho garen
2022-06-10 12:47:53 -04:00
parent a12fa36e2f
commit d6e3cab983
3 changed files with 39 additions and 32 deletions

View File

@@ -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)
}

View File

@@ -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

View File

@@ -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)