OSDN Git Service

cc159fa440cd90a4da8f6bc3ca73dc577a4f6c38
[bytom/vapor.git] / netsync / chainmgr / peers_test.go
1 package chainmgr
2
3 import (
4         "testing"
5 )
6
7 func TestAddDel(t *testing.T) {
8         syncPeers := newFastSyncPeers()
9         peers := make(map[string]bool)
10         peers["Peer1"] = true
11         peers["Peer2"] = true
12         for k := range peers {
13                 syncPeers.add(k)
14                 syncPeers.add(k)
15         }
16         if syncPeers.size() != len(peers) {
17                 t.Errorf("add peer test err: got %d\nwant %d", syncPeers.size(), len(peers))
18         }
19
20         syncPeers.delete("Peer1")
21         if syncPeers.size() != 1 {
22                 t.Errorf("add peer test err: got %d\nwant %d", syncPeers.size(), 1)
23         }
24
25         syncPeers.delete("Peer1")
26         if syncPeers.size() != 1 {
27                 t.Errorf("add peer test err: got %d\nwant %d", syncPeers.size(), 1)
28         }
29 }
30
31 func TestIdlePeers(t *testing.T) {
32         syncPeers := newFastSyncPeers()
33         peers := make(map[string]bool)
34         peers["Peer1"] = true
35         peers["Peer2"] = true
36         for k := range peers {
37                 syncPeers.add(k)
38                 syncPeers.add(k)
39         }
40
41         idlePeers := syncPeers.selectIdlePeers()
42         if len(idlePeers) != len(peers) {
43                 t.Errorf("selcet idle peers test err: got %d\nwant %d", len(idlePeers), len(peers))
44         }
45
46         for _, peer := range idlePeers {
47                 if ok := peers[peer]; !ok {
48                         t.Errorf("selcet idle peers test err: want peers %v got %v", peers, idlePeers)
49                 }
50         }
51
52         idlePeers = syncPeers.selectIdlePeers()
53         if len(idlePeers) != 0 {
54                 t.Errorf("selcet idle peers test err: got %d\nwant %d", len(idlePeers), 0)
55         }
56
57 }
58
59 func TestIdlePeer(t *testing.T) {
60         syncPeers := newFastSyncPeers()
61         peers := make(map[string]bool)
62         peers["Peer1"] = true
63         peers["Peer2"] = true
64         for k := range peers {
65                 syncPeers.add(k)
66                 syncPeers.add(k)
67         }
68         idlePeer, err := syncPeers.selectIdlePeer()
69         if err != nil {
70                 t.Errorf("selcet idle peers test err: got %v\nwant %v", err, nil)
71         }
72
73         if ok := peers[idlePeer]; !ok {
74                 t.Error("selcet idle peers test err.")
75         }
76         idlePeer, err = syncPeers.selectIdlePeer()
77         if err != nil {
78                 t.Errorf("selcet idle peers test err: got %v\nwant %v", err, nil)
79         }
80
81         if ok := peers[idlePeer]; !ok {
82                 t.Error("selcet idle peers test err.")
83         }
84         idlePeer, err = syncPeers.selectIdlePeer()
85         if err != errNoValidFastSyncPeer {
86                 t.Errorf("selcet idle peers test err: got %v\nwant %v", err, errNoValidFastSyncPeer)
87         }
88 }
89
90 func TestSetIdle(t *testing.T) {
91         syncPeers := newFastSyncPeers()
92         peers := make(map[string]bool)
93         peers["Peer2"] = true
94         for k := range peers {
95                 syncPeers.add(k)
96         }
97         if syncPeers.size() != len(peers) {
98                 t.Errorf("add peer test err: got %d\nwant %d", syncPeers.size(), len(peers))
99         }
100         idlePeers := syncPeers.selectIdlePeers()
101         if len(idlePeers) != len(peers) {
102                 t.Errorf("selcet idle peers test err: got %d\nwant %d", len(idlePeers), len(peers))
103         }
104
105         syncPeers.setIdle("Peer1")
106         idlePeers = syncPeers.selectIdlePeers()
107         if len(idlePeers) != 0 {
108                 t.Errorf("selcet idle peers test err: got %d\nwant %d", len(idlePeers), 0)
109         }
110
111         syncPeers.setIdle("Peer2")
112         idlePeers = syncPeers.selectIdlePeers()
113         if len(idlePeers) != len(peers) {
114                 t.Errorf("selcet idle peers test err: got %d\nwant %d", len(idlePeers), len(peers))
115         }
116 }