X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=ut-holepunching_test.go;h=93ff3a4ea58f53aa95b5e37d762f7cbe0b7ab381;hb=a11739a667be8c5bfaad2cf73417eba0e9adab2c;hp=a45eb8e591d7154bdf211493ecbac7c6538b2d58;hpb=c8fd8884b124af61b98e435711733d11270265bf;p=btrtrc.git diff --git a/ut-holepunching_test.go b/ut-holepunching_test.go index a45eb8e5..93ff3a4e 100644 --- a/ut-holepunching_test.go +++ b/ut-holepunching_test.go @@ -54,7 +54,8 @@ func TestHolepunchConnect(t *testing.T) { cfg.Seed = false cfg.DataDir = t.TempDir() cfg.MaxAllocPeerRequestDataPerConn = 4 - //cfg.Debug = true + cfg.Debug = true + cfg.NominalDialTimeout = time.Second //cfg.DisableUTP = true leecherLeecher, _ := NewClient(cfg) require.NoError(t, err) @@ -88,26 +89,29 @@ func TestHolepunchConnect(t *testing.T) { waitForConns(seederTorrent) go llg.AddClientPeer(leecher) waitForConns(llg) - //time.Sleep(time.Second) + time.Sleep(time.Second) llg.cl.lock() - targetAddr := seeder.ListenAddrs()[1] + targetAddr := seeder.ListenAddrs()[0] log.Printf("trying to initiate to %v", targetAddr) - llg.initiateConn(PeerInfo{ - Addr: targetAddr, - }, true, false, false, false) + initiateConn(outgoingConnOpts{ + peerInfo: PeerInfo{ + Addr: targetAddr, + }, + t: llg, + requireRendezvous: true, + skipHolepunchRendezvous: false, + HeaderObfuscationPolicy: llg.cl.config.HeaderObfuscationPolicy, + }, true) llg.cl.unlock() wg.Wait() - // These checks would require that the leecher leecher first attempt to connect without - // holepunching. - //llClientStats := leecherLeecher.Stats() - //c := qt.New(t) - //c.Check(llClientStats.NumPeersDialedRequiringHolepunch, qt.Not(qt.Equals), 0) - //c.Check( - // llClientStats.NumPeersDialedRequiringHolepunch, - // qt.Equals, - // llClientStats.NumPeersUndiableWithoutHolepunch, - //) + llClientStats := leecherLeecher.Stats() + c.Check(llClientStats.NumPeersDialableOnlyAfterHolepunch, qt.Not(qt.Equals), 0) + c.Check( + llClientStats.NumPeersDialableOnlyAfterHolepunch, + qt.Equals, + llClientStats.NumPeersUndialableWithoutHolepunchDialedAfterHolepunchConnect, + ) } func waitForConns(t *Torrent) { @@ -120,3 +124,12 @@ func waitForConns(t *Torrent) { t.cl.event.Wait() } } + +func TestDialTcpNotAccepting(t *testing.T) { + l, err := net.Listen("tcp", "localhost:0") + c := qt.New(t) + c.Check(err, qt.IsNil) + defer l.Close() + _, err = net.Dial("tcp", l.Addr().String()) + c.Assert(err, qt.IsNotNil) +}