|
|
|
|
@@ -384,16 +384,14 @@ func TestPeerManager_DialNext_WakeOnDialFailed(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
// Add b. We shouldn't be able to dial it, due to MaxConnected.
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
// Spawn a goroutine to fail a's dial attempt.
|
|
|
|
|
@@ -427,8 +425,7 @@ func TestPeerManager_DialNext_WakeOnDialFailedRetry(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.DialFailed(ctx, dial))
|
|
|
|
|
failed := time.Now()
|
|
|
|
|
@@ -458,8 +455,7 @@ func TestPeerManager_DialNext_WakeOnDisconnected(t *testing.T) {
|
|
|
|
|
err = peerManager.Accepted(a.NodeID)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
dctx, dcancel := context.WithTimeout(ctx, 300*time.Millisecond)
|
|
|
|
|
@@ -490,8 +486,7 @@ func TestPeerManager_TryDialNext_MaxConnected(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
|
|
|
|
|
@@ -499,16 +494,14 @@ func TestPeerManager_TryDialNext_MaxConnected(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
// At this point, adding c will not allow dialing it.
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -540,7 +533,7 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
@@ -549,8 +542,7 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
// Even though we are at capacity, we should be allowed to dial c for an
|
|
|
|
|
@@ -558,8 +550,7 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
|
|
|
|
|
// However, since we're using all upgrade slots now, we can't add and dial
|
|
|
|
|
@@ -567,16 +558,14 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(d)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
// We go through with c's upgrade.
|
|
|
|
|
require.NoError(t, peerManager.Dialed(c))
|
|
|
|
|
|
|
|
|
|
// Still can't dial d.
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
// Now, if we disconnect a, we should be allowed to dial d because we have a
|
|
|
|
|
@@ -592,8 +581,7 @@ func TestPeerManager_TryDialNext_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(e)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -613,8 +601,7 @@ func TestPeerManager_TryDialNext_UpgradeReservesPeer(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
|
|
|
|
|
@@ -622,8 +609,7 @@ func TestPeerManager_TryDialNext_UpgradeReservesPeer(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
// Adding c and dialing it will fail, because a is the only connected
|
|
|
|
|
@@ -631,8 +617,7 @@ func TestPeerManager_TryDialNext_UpgradeReservesPeer(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Empty(t, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -653,22 +638,19 @@ func TestPeerManager_TryDialNext_DialingConnected(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
// Adding a's TCP address will not dispense a, since it's already dialing.
|
|
|
|
|
added, err = peerManager.Add(aTCP)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
// Marking a as dialed will still not dispense it.
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
|
|
|
|
|
// Adding b and accepting a connection from it will not dispense it either.
|
|
|
|
|
@@ -676,8 +658,7 @@ func TestPeerManager_TryDialNext_DialingConnected(t *testing.T) {
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
require.NoError(t, peerManager.Accepted(bID))
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -706,16 +687,14 @@ func TestPeerManager_TryDialNext_Multiple(t *testing.T) {
|
|
|
|
|
// All addresses should be dispensed as long as dialing them has failed.
|
|
|
|
|
dial := []p2p.NodeAddress{}
|
|
|
|
|
for range addresses {
|
|
|
|
|
address, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
address := peerManager.TryDialNext()
|
|
|
|
|
require.NotZero(t, address)
|
|
|
|
|
require.NoError(t, peerManager.DialFailed(ctx, address))
|
|
|
|
|
dial = append(dial, address)
|
|
|
|
|
}
|
|
|
|
|
require.ElementsMatch(t, dial, addresses)
|
|
|
|
|
|
|
|
|
|
address, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
address := peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, address)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -740,15 +719,14 @@ func TestPeerManager_DialFailed(t *testing.T) {
|
|
|
|
|
// Dialing and then calling DialFailed with a different address (same
|
|
|
|
|
// NodeID) should unmark as dialing and allow us to dial the other address
|
|
|
|
|
// again, but not register the failed address.
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.DialFailed(ctx, p2p.NodeAddress{
|
|
|
|
|
Protocol: "tcp", NodeID: aID, Hostname: "localhost"}))
|
|
|
|
|
require.Equal(t, []p2p.NodeAddress{a}, peerManager.Addresses(aID))
|
|
|
|
|
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
// Calling DialFailed on same address twice should be fine.
|
|
|
|
|
@@ -782,8 +760,7 @@ func TestPeerManager_DialFailed_UnreservePeer(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
|
|
|
|
|
@@ -791,8 +768,7 @@ func TestPeerManager_DialFailed_UnreservePeer(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
// Adding c and dialing it will fail, even though it could upgrade a and we
|
|
|
|
|
@@ -801,14 +777,12 @@ func TestPeerManager_DialFailed_UnreservePeer(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Empty(t, dial)
|
|
|
|
|
|
|
|
|
|
// Failing b's dial will now make c available for dialing.
|
|
|
|
|
require.NoError(t, peerManager.DialFailed(ctx, b))
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -823,8 +797,7 @@ func TestPeerManager_Dialed_Connected(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
require.NoError(t, peerManager.Dialed(a))
|
|
|
|
|
@@ -834,8 +807,7 @@ func TestPeerManager_Dialed_Connected(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
require.NoError(t, peerManager.Accepted(b.NodeID))
|
|
|
|
|
@@ -864,8 +836,7 @@ func TestPeerManager_Dialed_MaxConnected(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
// Marking b as dialed in the meanwhile (even without TryDialNext)
|
|
|
|
|
@@ -907,8 +878,7 @@ func TestPeerManager_Dialed_MaxConnectedUpgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(c))
|
|
|
|
|
|
|
|
|
|
@@ -952,8 +922,7 @@ func TestPeerManager_Dialed_Upgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(b))
|
|
|
|
|
|
|
|
|
|
@@ -962,8 +931,7 @@ func TestPeerManager_Dialed_Upgrade(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Empty(t, dial)
|
|
|
|
|
|
|
|
|
|
// a should now be evicted.
|
|
|
|
|
@@ -1009,8 +977,7 @@ func TestPeerManager_Dialed_UpgradeEvenLower(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
|
|
|
|
|
// In the meanwhile, a disconnects and d connects. d is even lower-scored
|
|
|
|
|
@@ -1063,7 +1030,7 @@ func TestPeerManager_Dialed_UpgradeNoEvict(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
|
|
|
|
|
@@ -1109,8 +1076,7 @@ func TestPeerManager_Accepted(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(c)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, c, dial)
|
|
|
|
|
require.NoError(t, peerManager.Accepted(c.NodeID))
|
|
|
|
|
require.Error(t, peerManager.Dialed(c))
|
|
|
|
|
@@ -1119,8 +1085,7 @@ func TestPeerManager_Accepted(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(d)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, d, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(d))
|
|
|
|
|
require.Error(t, peerManager.Accepted(d.NodeID))
|
|
|
|
|
@@ -1271,8 +1236,7 @@ func TestPeerManager_Accepted_UpgradeDialing(t *testing.T) {
|
|
|
|
|
added, err = peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
|
|
|
|
|
// a has already been claimed as an upgrade of a, so accepting
|
|
|
|
|
@@ -1446,8 +1410,7 @@ func TestPeerManager_EvictNext_WakeOnUpgradeDialed(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(b)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, b, dial)
|
|
|
|
|
require.NoError(t, peerManager.Dialed(b))
|
|
|
|
|
}()
|
|
|
|
|
@@ -1581,13 +1544,11 @@ func TestPeerManager_Disconnected(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
// Disconnecting a dialing peer does not unmark it as dialing, to avoid
|
|
|
|
|
// dialing it multiple times in parallel.
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
|
|
|
|
|
peerManager.Disconnected(ctx, a.NodeID)
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Zero(t, dial)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -1660,8 +1621,7 @@ func TestPeerManager_Subscribe(t *testing.T) {
|
|
|
|
|
require.Equal(t, p2p.PeerUpdate{NodeID: a.NodeID, Status: p2p.PeerStatusDown}, <-sub.Updates())
|
|
|
|
|
|
|
|
|
|
// Outbound connection with peer error and eviction.
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.Empty(t, sub.Updates())
|
|
|
|
|
|
|
|
|
|
@@ -1684,8 +1644,7 @@ func TestPeerManager_Subscribe(t *testing.T) {
|
|
|
|
|
require.Equal(t, p2p.PeerUpdate{NodeID: a.NodeID, Status: p2p.PeerStatusDown}, <-sub.Updates())
|
|
|
|
|
|
|
|
|
|
// Outbound connection with dial failure.
|
|
|
|
|
dial, err = peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial = peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.Empty(t, sub.Updates())
|
|
|
|
|
|
|
|
|
|
@@ -1790,8 +1749,7 @@ func TestPeerManager_Close(t *testing.T) {
|
|
|
|
|
added, err := peerManager.Add(a)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.True(t, added)
|
|
|
|
|
dial, err := peerManager.TryDialNext()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
dial := peerManager.TryDialNext()
|
|
|
|
|
require.Equal(t, a, dial)
|
|
|
|
|
require.NoError(t, peerManager.DialFailed(ctx, a))
|
|
|
|
|
}
|
|
|
|
|
|