Add test to test conncurrent connects between two peers
Jeromy committed
Oct 14, 2014 at 13:40 UTC
00516299ddaf5ef9ef54e16329cb13a2d16d5616
2 files changed
+48
routing/dht/dht_test.go
+44
@@ -390,3 +390,47 @@ func TestFindPeer(t *testing.T) {
390
t.Fatal("Didnt find expected peer.")
391
}
392
}
393
+
394
+func TestConnectCollision(t *testing.T) {
395
+ // t.Skip("skipping test to debug another")
396
+
397
+ u.Debug = false
398
+ addrA, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/1235")
399
+ if err != nil {
400
+ t.Fatal(err)
401
+ }
402
+ addrB, err := ma.NewMultiaddr("/ip4/127.0.0.1/tcp/5679")
403
+ if err != nil {
404
+ t.Fatal(err)
405
+ }
406
+
407
+ peerA := makePeer(addrA)
408
+ peerB := makePeer(addrB)
409
+
410
+ dhtA := setupDHT(t, peerA)
411
+ dhtB := setupDHT(t, peerB)
412
+
413
+ defer dhtA.Halt()
414
+ defer dhtB.Halt()
415
+ defer dhtA.network.Close()
416
+ defer dhtB.network.Close()
417
+
418
+ done := make(chan struct{})
419
+ go func() {
420
+ _, err = dhtA.Connect(context.Background(), peerB)
421
+ if err != nil {
422
+ t.Fatal(err)
423
+ }
424
+ done <- struct{}{}
425
+ }()
426
+ go func() {
427
+ _, err = dhtB.Connect(context.Background(), peerA)
428
+ if err != nil {
429
+ t.Fatal(err)
430
+ }
431
+ done <- struct{}{}
432
+ }()
433
+
434
+ <-done
435
+ <-done
436
+}
routing/dht/ext_test.go
+4
@@ -92,6 +92,10 @@ func (f *fauxNet) GetPeerList() []*peer.Peer {
92
return nil
93
}
94
95
+func (f *fauxNet) GetBandwidthTotals() (uint64, uint64) {
96
+ return 0, 0
97
+}
98
+
99
// Close terminates all network operation
100
func (f *fauxNet) Close() error { return nil }
101