@cryptotaxi247 / kubo / commits / 00516299d

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