Skip to content

Commit 7ad64b7

Browse files
committed
Added tests for routingtable, bucket and rpc
1 parent d592cb0 commit 7ad64b7

File tree

5 files changed

+235
-0
lines changed

5 files changed

+235
-0
lines changed

coverage.out

+165
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
mode: set
2+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:15.45,19.32 3 1
3+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:23.2,23.23 1 1
4+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:19.32,21.3 1 1
5+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:28.40,30.32 2 1
6+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:33.2,33.23 1 1
7+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:30.32,32.3 1 1
8+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:37.69,38.32 1 1
9+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:43.2,43.14 1 0
10+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:38.32,39.42 1 1
11+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:39.42,41.4 1 1
12+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:47.71,48.32 1 1
13+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:53.2,53.13 1 1
14+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:48.32,49.42 1 1
15+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:49.42,51.4 1 1
16+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:58.75,60.32 2 1
17+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:63.2,63.16 1 1
18+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:60.32,62.3 1 1
19+
github.com/Grumme2/D7024E/internal/d7024e/kademliaid.go:67.47,69.2 1 1
20+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:15.20,18.2 2 0
21+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:20.31,29.40 7 0
22+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:73.2,75.20 2 0
23+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:30.15,33.10 2 0
24+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:34.16,35.29 1 0
25+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:40.14,41.30 1 0
26+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:51.14,52.30 1 0
27+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:61.13,62.38 1 0
28+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:63.15,68.76 5 0
29+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:69.11,70.76 1 0
30+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:35.29,37.5 1 0
31+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:37.10,39.5 1 0
32+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:41.30,48.5 3 0
33+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:48.10,50.5 1 0
34+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:52.30,58.5 3 0
35+
github.com/Grumme2/D7024E/internal/d7024e/cli.go:58.10,60.5 1 0
36+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:18.57,20.2 1 1
37+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:24.58,26.2 1 1
38+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:29.58,31.2 1 1
39+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:34.41,36.2 1 1
40+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:45.65,47.2 1 1
41+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:50.71,52.2 1 1
42+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:55.61,57.2 1 0
43+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:60.45,62.2 1 1
44+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:65.48,67.2 1 1
45+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:71.53,73.2 1 1
46+
github.com/Grumme2/D7024E/internal/d7024e/contact.go:77.58,79.2 1 1
47+
github.com/Grumme2/D7024E/internal/d7024e/network.go:23.43,25.2 1 0
48+
github.com/Grumme2/D7024E/internal/d7024e/network.go:27.45,30.16 2 0
49+
github.com/Grumme2/D7024E/internal/d7024e/network.go:34.2,34.32 1 0
50+
github.com/Grumme2/D7024E/internal/d7024e/network.go:42.2,42.11 1 0
51+
github.com/Grumme2/D7024E/internal/d7024e/network.go:30.16,32.3 1 0
52+
github.com/Grumme2/D7024E/internal/d7024e/network.go:34.32,36.70 1 0
53+
github.com/Grumme2/D7024E/internal/d7024e/network.go:36.70,37.29 1 0
54+
github.com/Grumme2/D7024E/internal/d7024e/network.go:37.29,39.5 1 0
55+
github.com/Grumme2/D7024E/internal/d7024e/network.go:47.54,50.72 2 0
56+
github.com/Grumme2/D7024E/internal/d7024e/network.go:65.2,66.38 2 0
57+
github.com/Grumme2/D7024E/internal/d7024e/network.go:50.72,57.43 7 0
58+
github.com/Grumme2/D7024E/internal/d7024e/network.go:57.43,61.4 3 0
59+
github.com/Grumme2/D7024E/internal/d7024e/network.go:69.60,73.2 3 0
60+
github.com/Grumme2/D7024E/internal/d7024e/network.go:75.34,79.16 3 0
61+
github.com/Grumme2/D7024E/internal/d7024e/network.go:84.2,85.16 2 0
62+
github.com/Grumme2/D7024E/internal/d7024e/network.go:90.2,93.6 3 0
63+
github.com/Grumme2/D7024E/internal/d7024e/network.go:79.16,82.3 2 0
64+
github.com/Grumme2/D7024E/internal/d7024e/network.go:85.16,88.3 2 0
65+
github.com/Grumme2/D7024E/internal/d7024e/network.go:93.6,101.135 5 0
66+
github.com/Grumme2/D7024E/internal/d7024e/network.go:119.3,119.84 1 0
67+
github.com/Grumme2/D7024E/internal/d7024e/network.go:101.135,103.4 1 0
68+
github.com/Grumme2/D7024E/internal/d7024e/network.go:103.9,103.72 1 0
69+
github.com/Grumme2/D7024E/internal/d7024e/network.go:103.72,115.4 7 0
70+
github.com/Grumme2/D7024E/internal/d7024e/network.go:115.9,117.4 1 0
71+
github.com/Grumme2/D7024E/internal/d7024e/network.go:119.84,123.35 3 0
72+
github.com/Grumme2/D7024E/internal/d7024e/network.go:147.4,154.18 6 0
73+
github.com/Grumme2/D7024E/internal/d7024e/network.go:124.17,125.27 1 0
74+
github.com/Grumme2/D7024E/internal/d7024e/network.go:126.17,127.25 1 0
75+
github.com/Grumme2/D7024E/internal/d7024e/network.go:128.15,129.27 1 0
76+
github.com/Grumme2/D7024E/internal/d7024e/network.go:130.18,133.27 3 0
77+
github.com/Grumme2/D7024E/internal/d7024e/network.go:134.22,136.20 2 0
78+
github.com/Grumme2/D7024E/internal/d7024e/network.go:136.20,141.7 4 0
79+
github.com/Grumme2/D7024E/internal/d7024e/network.go:141.11,144.7 2 0
80+
github.com/Grumme2/D7024E/internal/d7024e/network.go:154.18,157.5 2 0
81+
github.com/Grumme2/D7024E/internal/d7024e/network.go:158.9,160.4 1 0
82+
github.com/Grumme2/D7024E/internal/d7024e/network.go:164.55,169.16 4 0
83+
github.com/Grumme2/D7024E/internal/d7024e/network.go:174.2,176.6 2 0
84+
github.com/Grumme2/D7024E/internal/d7024e/network.go:169.16,172.3 2 0
85+
github.com/Grumme2/D7024E/internal/d7024e/network.go:176.6,180.17 3 0
86+
github.com/Grumme2/D7024E/internal/d7024e/network.go:185.3,187.17 3 0
87+
github.com/Grumme2/D7024E/internal/d7024e/network.go:192.3,193.14 2 0
88+
github.com/Grumme2/D7024E/internal/d7024e/network.go:180.17,183.4 2 0
89+
github.com/Grumme2/D7024E/internal/d7024e/network.go:187.17,190.4 2 0
90+
github.com/Grumme2/D7024E/internal/d7024e/network.go:197.59,201.2 3 0
91+
github.com/Grumme2/D7024E/internal/d7024e/network.go:203.57,204.66 1 0
92+
github.com/Grumme2/D7024E/internal/d7024e/network.go:209.2,209.11 1 0
93+
github.com/Grumme2/D7024E/internal/d7024e/network.go:204.66,205.18 1 0
94+
github.com/Grumme2/D7024E/internal/d7024e/network.go:205.18,207.4 1 0
95+
github.com/Grumme2/D7024E/internal/d7024e/network.go:212.39,215.2 2 0
96+
github.com/Grumme2/D7024E/internal/d7024e/network.go:217.48,221.2 3 0
97+
github.com/Grumme2/D7024E/internal/d7024e/network.go:223.66,225.16 2 0
98+
github.com/Grumme2/D7024E/internal/d7024e/network.go:229.2,230.20 2 0
99+
github.com/Grumme2/D7024E/internal/d7024e/network.go:225.16,228.3 2 0
100+
github.com/Grumme2/D7024E/internal/d7024e/network.go:233.76,236.2 2 0
101+
github.com/Grumme2/D7024E/internal/d7024e/network.go:238.59,240.2 0 0
102+
github.com/Grumme2/D7024E/internal/d7024e/network.go:242.56,244.2 0 0
103+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:13.48,15.34 2 1
104+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:18.2,19.21 2 1
105+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:15.34,17.3 1 1
106+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:23.63,27.2 3 1
107+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:29.66,33.2 3 1
108+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:36.96,43.98 5 1
109+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:54.2,56.30 2 1
110+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:60.2,60.38 1 1
111+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:43.98,44.25 1 1
112+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:48.3,48.33 1 1
113+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:44.25,47.4 2 0
114+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:48.33,51.4 2 1
115+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:56.30,58.3 1 1
116+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:64.70,66.32 2 1
117+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:74.2,74.23 1 1
118+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:66.32,67.26 1 1
119+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:67.26,68.42 1 1
120+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:68.42,70.5 1 1
121+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:77.69,80.39 3 0
122+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:80.39,82.3 1 0
123+
github.com/Grumme2/D7024E/internal/d7024e/routingtable.go:82.8,84.3 1 0
124+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:15.91,17.2 1 1
125+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:19.37,22.16 3 1
126+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:25.2,25.17 1 1
127+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:22.16,24.3 1 0
128+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:28.37,31.16 3 1
129+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:34.2,34.17 1 1
130+
github.com/Grumme2/D7024E/internal/d7024e/rpc.go:31.16,33.3 1 0
131+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:15.26,19.2 3 1
132+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:23.51,25.55 2 1
133+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:33.2,33.20 1 1
134+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:25.55,28.34 2 1
135+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:28.34,30.4 1 0
136+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:33.20,34.37 1 1
137+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:34.37,36.4 1 1
138+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:37.8,39.3 1 0
139+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:44.79,47.63 2 1
140+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:53.2,53.17 1 1
141+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:47.63,51.3 3 1
142+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:56.54,58.55 2 1
143+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:66.2,66.20 1 1
144+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:58.55,61.34 2 1
145+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:61.34,63.4 1 1
146+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:66.20,68.3 1 1
147+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:72.33,74.2 1 1
148+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:76.63,78.55 2 1
149+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:86.2,86.20 1 1
150+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:78.55,81.34 2 1
151+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:81.34,83.4 1 1
152+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:86.20,88.3 1 1
153+
github.com/Grumme2/D7024E/internal/d7024e/bucket.go:88.8,90.3 1 1
154+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:9.68,14.111 5 0
155+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:28.2,28.27 1 0
156+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:14.111,16.26 2 0
157+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:26.3,26.36 1 0
158+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:16.26,18.42 2 0
159+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:18.42,23.5 4 0
160+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:32.41,33.25 1 0
161+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:38.2,38.14 1 0
162+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:33.25,34.19 1 0
163+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:34.19,36.4 1 0
164+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:85.46,87.36 2 0
165+
github.com/Grumme2/D7024E/internal/d7024e/kademlia.go:87.36,90.3 2 0

go.mod

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
module github.com/Grumme2/D7024E
22

33
go 1.13
4+
5+
require github.com/stretchr/testify v1.6.1

go.sum

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6+
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
7+
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
8+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
9+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
10+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

internal/d7024e/routingtable_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package d7024e
33
import (
44
"fmt"
55
"testing"
6+
"github.com/stretchr/testify/assert"
7+
// "strconv"
68
)
79

810
func TestRoutingTable(t *testing.T) {
@@ -20,3 +22,41 @@ func TestRoutingTable(t *testing.T) {
2022
fmt.Println(contacts[i].String())
2123
}
2224
}
25+
26+
func TestRemoveContact(t *testing.T) {
27+
kadID := NewKademliaID("FFFFFFFF00000000000000000000000000000000")
28+
me := NewContact(kadID, "localhost:8000")
29+
rt := NewRoutingTable(me)
30+
con:= NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")
31+
rt.AddContact(NewContact(NewKademliaID("FFFFFFFF00000000000000000000000000000000"), "localhost:8001"))
32+
rt.AddContact(con)
33+
rt.AddContact(NewContact(NewKademliaID("1111111200000000000000000000000000000000"), "localhost:8002"))
34+
index := rt.GetBucketIndex(kadID)
35+
rt.buckets[index].RemoveContact(con)
36+
conInBucket:=rt.buckets[index].IsContactInBucket(con)
37+
if conInBucket {
38+
t.Errorf("Cant remove contact!")
39+
}
40+
}
41+
42+
func TestFindClosestContacts(t *testing.T) {
43+
kadID := NewKademliaID("FFFFFFFF00000000000000000000000000000000")
44+
me := NewContact(kadID, "localhost:8000")
45+
rt := NewRoutingTable(me)
46+
con:= NewContact(NewKademliaID("1111111100000000000000000000000000000000"), "localhost:8002")
47+
rt.AddContact(NewContact(NewKademliaID("FFFFFFFF00000000000000000000000000000000"), "localhost:8001"))
48+
rt.AddContact(con)
49+
closestCon :=NewContact(NewKademliaID("2111111400000000000000000000000000000000"), "localhost:8002")
50+
nextClosest :=NewContact(NewKademliaID("2111111300000000000000000000000000000000"), "localhost:8002")
51+
notEvenClose := NewContact(NewKademliaID("1111111200000000000000000000000000000000"), "localhost:8002")
52+
rt.AddContact(notEvenClose)
53+
rt.AddContact(closestCon)
54+
rt.AddContact(nextClosest)
55+
close :=rt.FindClosestContacts(NewKademliaID("2111111400000000000000000000000000000000"), 2)
56+
assert.Equal(t,close[0].ID ,closestCon.ID)
57+
assert.Equal(t,close[1].ID, nextClosest.ID)
58+
rt.RemoveContact(closestCon)
59+
newClose := rt.FindClosestContacts(NewKademliaID("2111111400000000000000000000000000000000"), 2)
60+
assert.Equal(t, newClose[0].ID, nextClosest.ID)
61+
assert.Equal(t, newClose[1].ID, con.ID)
62+
}

internal/d7024e/rpc_test.go

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package d7024e
2+
3+
import (
4+
//"fmt"
5+
"testing"
6+
"github.com/stretchr/testify/assert"
7+
// "strconv"
8+
)
9+
10+
func TestJSONDecode (t *testing.T) {
11+
senderCon := NewContact(NewRandomKademliaID(), "localhost:8000")
12+
RPCPreUnmarshal := NewRPC(senderCon, "localhost:8001", "PING", "")
13+
encodedRPC := JSONEncode(RPCPreUnmarshal)
14+
decodedRPC := JSONDecode(encodedRPC)
15+
assert.Equal(t, RPCPreUnmarshal.MessageType,decodedRPC.MessageType)
16+
}
17+
18+

0 commit comments

Comments
 (0)