diff options
Diffstat (limited to 'src/gnunet/service/dht/routingtable_test.go')
-rw-r--r-- | src/gnunet/service/dht/routingtable_test.go | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/src/gnunet/service/dht/routingtable_test.go b/src/gnunet/service/dht/routingtable_test.go index 33c4b7f..16f39de 100644 --- a/src/gnunet/service/dht/routingtable_test.go +++ b/src/gnunet/service/dht/routingtable_test.go | |||
@@ -19,8 +19,11 @@ | |||
19 | package dht | 19 | package dht |
20 | 20 | ||
21 | import ( | 21 | import ( |
22 | "crypto/sha512" | ||
23 | "encoding/hex" | ||
22 | "gnunet/config" | 24 | "gnunet/config" |
23 | "gnunet/core" | 25 | "gnunet/core" |
26 | "gnunet/service/dht/blocks" | ||
24 | "gnunet/util" | 27 | "gnunet/util" |
25 | "math/rand" | 28 | "math/rand" |
26 | "testing" | 29 | "testing" |
@@ -43,7 +46,7 @@ type Entry struct { | |||
43 | 46 | ||
44 | // test data | 47 | // test data |
45 | var ( | 48 | var ( |
46 | cfg = &config.NodeConfig{ | 49 | nodeCfg = &config.NodeConfig{ |
47 | PrivateSeed: "YGoe6XFH3XdvFRl+agx9gIzPTvxA229WFdkazEMdcOs=", | 50 | PrivateSeed: "YGoe6XFH3XdvFRl+agx9gIzPTvxA229WFdkazEMdcOs=", |
48 | Endpoints: []*config.EndpointConfig{ | 51 | Endpoints: []*config.EndpointConfig{ |
49 | { | 52 | { |
@@ -53,6 +56,9 @@ var ( | |||
53 | }, | 56 | }, |
54 | }, | 57 | }, |
55 | } | 58 | } |
59 | rtCfg = &config.RoutingConfig{ | ||
60 | PeerTTL: 10800, | ||
61 | } | ||
56 | ) | 62 | ) |
57 | 63 | ||
58 | // TestRT connects and disconnects random peers to test the base | 64 | // TestRT connects and disconnects random peers to test the base |
@@ -64,18 +70,16 @@ func TestRT(t *testing.T) { | |||
64 | // helper functions | 70 | // helper functions |
65 | genRemotePeer := func() *PeerAddress { | 71 | genRemotePeer := func() *PeerAddress { |
66 | d := make([]byte, 32) | 72 | d := make([]byte, 32) |
67 | if _, err := rand.Read(d); err != nil { | 73 | _, _ = rand.Read(d) |
68 | panic(err) | ||
69 | } | ||
70 | return NewPeerAddress(util.NewPeerID(d)) | 74 | return NewPeerAddress(util.NewPeerID(d)) |
71 | } | 75 | } |
72 | 76 | ||
73 | // create routing table and start command handler | 77 | // create routing table and start command handler |
74 | local, err := core.NewLocalPeer(cfg) | 78 | local, err := core.NewLocalPeer(nodeCfg) |
75 | if err != nil { | 79 | if err != nil { |
76 | t.Fatal(err) | 80 | t.Fatal(err) |
77 | } | 81 | } |
78 | rt := NewRoutingTable(NewPeerAddress(local.GetID())) | 82 | rt := NewRoutingTable(NewPeerAddress(local.GetID()), rtCfg) |
79 | 83 | ||
80 | // create a task list | 84 | // create a task list |
81 | tasks := make([]*Entry, NUMP) | 85 | tasks := make([]*Entry, NUMP) |
@@ -91,7 +95,6 @@ func TestRT(t *testing.T) { | |||
91 | 95 | ||
92 | // actions: | 96 | // actions: |
93 | connected := func(task *Entry, e int64, msg string) { | 97 | connected := func(task *Entry, e int64, msg string) { |
94 | task.addr.connected = true | ||
95 | rt.Add(task.addr) | 98 | rt.Add(task.addr) |
96 | task.online = true | 99 | task.online = true |
97 | task.last = e | 100 | task.last = e |
@@ -136,10 +139,29 @@ func TestRT(t *testing.T) { | |||
136 | 139 | ||
137 | // execute some routing functions on remaining table | 140 | // execute some routing functions on remaining table |
138 | k := genRemotePeer() | 141 | k := genRemotePeer() |
139 | bf := NewPeerBloomFilter() | 142 | pf := blocks.NewPeerFilter() |
140 | n := rt.SelectClosestPeer(k, bf) | 143 | n := rt.SelectClosestPeer(k, pf) |
141 | t.Logf("Closest: %s -> %s\n", k, n) | 144 | t.Logf("Closest: %s -> %s\n", k, n) |
142 | 145 | ||
143 | n = rt.SelectRandomPeer(bf) | 146 | n = rt.SelectRandomPeer(pf) |
144 | t.Logf("Random: %s\n", n) | 147 | t.Logf("Random: %s\n", n) |
145 | } | 148 | } |
149 | |||
150 | func TestDistance(t *testing.T) { | ||
151 | pid1 := "4ER9C0GV4QC25GGQMXBBGXYFEB3ZVAYMXZVSRKDVEGCDTAS34E30" | ||
152 | pid2 := "V61ESQ96AFXZWDSA509HP11K5HJXXJ9ECM4NAMCQRX5YW4KN8XPG" | ||
153 | |||
154 | p1, _ := util.DecodeStringToBinary(pid1, 32) | ||
155 | p2, _ := util.DecodeStringToBinary(pid2, 32) | ||
156 | |||
157 | h1 := sha512.Sum512(p1) | ||
158 | h2 := sha512.Sum512(p2) | ||
159 | t.Logf("h1=%s\n", hex.EncodeToString(h1[:])) | ||
160 | t.Logf("h2=%s\n", hex.EncodeToString(h2[:])) | ||
161 | |||
162 | pa1 := NewPeerAddress(util.NewPeerID(p1)) | ||
163 | pa2 := NewPeerAddress(util.NewPeerID(p2)) | ||
164 | |||
165 | dist, idx := pa1.Distance(pa2) | ||
166 | t.Logf("dist=%v, idx=%d\n", dist, idx) | ||
167 | } | ||