@@ -9,67 +9,21 @@ import (
9
9
10
10
"github.com/ipfs/go-datastore"
11
11
"github.com/ipfs/go-datastore/sync"
12
+ "github.com/libp2p/go-libp2p"
13
+ "github.com/libp2p/go-libp2p/core/host"
12
14
"github.com/libp2p/go-libp2p/core/peer"
15
+ "github.com/libp2p/go-libp2p/core/peerstore"
13
16
testpeer "github.com/libp2p/go-libp2p/core/test"
14
17
"github.com/libp2p/go-libp2p/p2p/net/conngater"
15
- mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
16
18
"github.com/stretchr/testify/assert"
17
19
"github.com/stretchr/testify/require"
18
20
)
19
21
20
- func TestPeerTracker_GC (t * testing.T ) {
21
- ctx , cancel := context .WithCancel (context .Background ())
22
- t .Cleanup (cancel )
23
-
24
- h := createMocknet (t , 1 )
25
-
26
- gcCycle = time .Millisecond * 200
27
-
28
- connGater , err := conngater .NewBasicConnectionGater (sync .MutexWrap (datastore .NewMapDatastore ()))
29
- require .NoError (t , err )
30
-
31
- pidstore := newDummyPIDStore ()
32
- p := newPeerTracker (h [0 ], connGater , pidstore , nil )
33
-
34
- maxAwaitingTime = time .Millisecond
35
-
36
- peerlist := generateRandomPeerlist (t , 10 )
37
- for i := 0 ; i < 10 ; i ++ {
38
- p.trackedPeers [peerlist [i ]] = & peerStat {peerID : peerlist [i ], peerScore : 0.5 }
39
- }
40
-
41
- peerlist = generateRandomPeerlist (t , 4 )
42
- pid1 := peerlist [2 ]
43
- pid2 := peerlist [3 ]
44
-
45
- p .disconnectedPeers [pid1 ] = & peerStat {peerID : pid1 , pruneDeadline : time .Now ()}
46
- p .disconnectedPeers [pid2 ] = & peerStat {peerID : pid2 , pruneDeadline : time .Now ().Add (time .Minute * 10 )}
47
- assert .True (t , len (p .trackedPeers ) > 0 )
48
- assert .True (t , len (p .disconnectedPeers ) > 0 )
49
-
50
- go p .track ()
51
- go p .gc ()
52
-
53
- time .Sleep (time .Millisecond * 500 )
54
-
55
- err = p .stop (ctx )
56
- require .NoError (t , err )
57
-
58
- require .Len (t , p .trackedPeers , 10 )
59
- require .Nil (t , p .disconnectedPeers [pid1 ])
60
-
61
- // ensure good peers were dumped to store
62
- peers , err := pidstore .Load (ctx )
63
- require .NoError (t , err )
64
- require .Equal (t , 10 , len (peers ))
65
- }
66
-
67
22
func TestPeerTracker_BlockPeer (t * testing.T ) {
68
23
h := createMocknet (t , 2 )
69
24
connGater , err := conngater .NewBasicConnectionGater (sync .MutexWrap (datastore .NewMapDatastore ()))
70
25
require .NoError (t , err )
71
- p := newPeerTracker (h [0 ], connGater , nil , nil )
72
- maxAwaitingTime = time .Millisecond
26
+ p := newPeerTracker (h [0 ], connGater , "private" , nil , nil )
73
27
p .blockPeer (h [1 ].ID (), errors .New ("test" ))
74
28
require .Len (t , connGater .ListBlockedPeers (), 1 )
75
29
require .True (t , connGater .ListBlockedPeers ()[0 ] == h [1 ].ID ())
@@ -82,26 +36,25 @@ func TestPeerTracker_Bootstrap(t *testing.T) {
82
36
connGater , err := conngater .NewBasicConnectionGater (sync .MutexWrap (datastore .NewMapDatastore ()))
83
37
require .NoError (t , err )
84
38
85
- // mn := createMocknet(t, 10)
86
- mn , err := mocknet .FullMeshConnected (10 )
87
- require .NoError (t , err )
39
+ hosts := make ([]host.Host , 10 )
40
+
41
+ for i := range hosts {
42
+ hosts [i ], err = libp2p .New ()
43
+ require .NoError (t , err )
44
+ hosts [i ].SetStreamHandler (protocolID ("private" ), nil )
45
+ }
88
46
89
47
// store peers to peerstore
90
48
prevSeen := make ([]peer.ID , 9 )
91
- for i , peer := range mn .Hosts ()[1 :] {
49
+ for i , peer := range hosts [1 :] {
50
+ hosts [0 ].Peerstore ().AddAddrs (hosts [i ].ID (), hosts [i ].Addrs (), peerstore .PermanentAddrTTL )
92
51
prevSeen [i ] = peer .ID ()
93
-
94
- // disconnect so they're not already connected on attempt to
95
- // connect
96
- err = mn .DisconnectPeers (mn .Hosts ()[i ].ID (), peer .ID ())
97
- require .NoError (t , err )
98
52
}
99
53
pidstore := newDummyPIDStore ()
100
54
// only store 7 peers to pidstore, and use 2 as trusted
101
55
err = pidstore .Put (ctx , prevSeen [2 :])
102
56
require .NoError (t , err )
103
-
104
- tracker := newPeerTracker (mn .Hosts ()[0 ], connGater , pidstore , nil )
57
+ tracker := newPeerTracker (hosts [0 ], connGater , "private" , pidstore , nil )
105
58
106
59
go tracker .track ()
107
60
0 commit comments