From: Michael Howell Date: Fri, 16 Sep 2016 14:01:15 +0000 (-0700) Subject: Add a test case for #114 (#117) X-Git-Tag: v1.0.0~578 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=9a4fbb01f0d2563f2e2cd36c1cb8937016a80279;p=btrtrc.git Add a test case for #114 (#117) --- diff --git a/client_test.go b/client_test.go index 1e67ba3d..e23f7250 100644 --- a/client_test.go +++ b/client_test.go @@ -1022,3 +1022,56 @@ func TestSetMaxEstablishedConn(t *testing.T) { addPeers() waitTotalConns(6) } + +func makeMagnet(t *testing.T, cl *Client, dir string, name string) string { + var err error + file, err := os.Create(dir + "/" + name) + require.NoError(t, err) + file.Write([]byte(name)) + file.Close() + mi := metainfo.MetaInfo{} + mi.SetDefaults() + info := metainfo.Info{ PieceLength: 256 * 1024 } + err = info.BuildFromFilePath(dir + "/" + name) + require.NoError(t, err) + mi.InfoBytes, err = bencode.Marshal(info) + require.NoError(t, err) + magnet := mi.Magnet(name, mi.HashInfoBytes()).String() + tr, err := cl.AddTorrent(&mi) + require.NoError(t, err) + assert.True(t, tr.Seeding()) + return magnet +} + +// https://github.com/anacrolix/torrent/issues/114 +func TestMultipleTorrentsWithEncryption(t *testing.T) { + cfg := TestingConfig + cfg.DisableUTP = true + cfg.Seed = true + cfg.DataDir = cfg.DataDir + "/server" + cfg.Debug = true + cfg.ForceEncryption = true + os.Mkdir(cfg.DataDir, 0755) + server, err := NewClient(&cfg) + defer server.Close() + require.NoError(t, err) + magnet1 := makeMagnet(t, server, cfg.DataDir, "test1") + makeMagnet(t, server, cfg.DataDir, "test2") + cfg = TestingConfig + cfg.DisableUTP = true + cfg.DataDir = cfg.DataDir + "/client" + cfg.Debug = true + cfg.ForceEncryption = true + client, err := NewClient(&cfg) + require.NoError(t, err) + defer client.Close() + tr, err := client.AddMagnet(magnet1) + require.NoError(t, err) + tr.AddPeers([]Peer{Peer{ + IP: missinggo.AddrIP(server.ListenAddr()), + Port: missinggo.AddrPort(server.ListenAddr()), + }}) + <- tr.GotInfo() + tr.DownloadAll() + client.WaitAll() +}