MCPcopy Create free account
hub / github.com/DeAI-Artist/Linkis / TestPeerSetAddRemoveOne

Function TestPeerSetAddRemoveOne

p2p/peer_set_test.go:52–97  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

50}
51
52func TestPeerSetAddRemoveOne(t *testing.T) {
53 t.Parallel()
54
55 peerSet := NewPeerSet()
56
57 var peerList []Peer
58 for i := 0; i < 5; i++ {
59 p := newMockPeer(net.IP{127, 0, 0, byte(i)})
60 if err := peerSet.Add(p); err != nil {
61 t.Error(err)
62 }
63 peerList = append(peerList, p)
64 }
65
66 n := len(peerList)
67 // 1. Test removing from the front
68 for i, peerAtFront := range peerList {
69 removed := peerSet.Remove(peerAtFront)
70 assert.True(t, removed)
71 wantSize := n - i - 1
72 for j := 0; j < 2; j++ {
73 assert.Equal(t, false, peerSet.Has(peerAtFront.ID()), "#%d Run #%d: failed to remove peer", i, j)
74 assert.Equal(t, wantSize, peerSet.Size(), "#%d Run #%d: failed to remove peer and decrement size", i, j)
75 // Test the route of removing the now non-existent element
76 removed := peerSet.Remove(peerAtFront)
77 assert.False(t, removed)
78 }
79 }
80
81 // 2. Next we are testing removing the peer at the end
82 // a) Replenish the peerSet
83 for _, peer := range peerList {
84 if err := peerSet.Add(peer); err != nil {
85 t.Error(err)
86 }
87 }
88
89 // b) In reverse, remove each element
90 for i := n - 1; i >= 0; i-- {
91 peerAtEnd := peerList[i]
92 removed := peerSet.Remove(peerAtEnd)
93 assert.True(t, removed)
94 assert.Equal(t, false, peerSet.Has(peerAtEnd.ID()), "#%d: failed to remove item at end", i)
95 assert.Equal(t, i, peerSet.Size(), "#%d: differing sizes after peerSet.Remove(atEndPeer)", i)
96 }
97}
98
99func TestPeerSetAddRemoveMany(t *testing.T) {
100 t.Parallel()

Callers

nothing calls this directly

Calls 9

AddMethod · 0.95
RemoveMethod · 0.95
HasMethod · 0.95
SizeMethod · 0.95
NewPeerSetFunction · 0.85
newMockPeerFunction · 0.85
ErrorMethod · 0.65
EqualMethod · 0.65
IDMethod · 0.65

Tested by

no test coverage detected