"github.com/anacrolix/torrent/storage"
)
-func TestingConfig() *Config {
- return &Config{
- ListenHost: LoopbackListenHost,
- NoDHT: true,
- DataDir: tempDir(),
- DisableTrackers: true,
- NoDefaultPortForwarding: true,
- // Debug: true,
- }
+func TestingConfig() *ClientConfig {
+ cfg := NewDefaultClientConfig()
+ cfg.ListenHost = LoopbackListenHost
+ cfg.NoDHT = true
+ cfg.DataDir = tempDir()
+ cfg.DisableTrackers = true
+ cfg.NoDefaultPortForwarding = true
+ return cfg
}
func TestClientDefault(t *testing.T) {
func TestTorrentInitialState(t *testing.T) {
dir, mi := testutil.GreetingTestTorrent()
defer os.RemoveAll(dir)
- cl := &Client{}
+ cl := &Client{
+ config: &ClientConfig{},
+ }
cl.initLogger()
tor := cl.newTorrent(
mi.HashInfoBytes(),
}
func TestReducedDialTimeout(t *testing.T) {
- cfg := &Config{}
- cfg.setDefaults()
+ cfg := NewDefaultClientConfig()
for _, _case := range []struct {
Max time.Duration
HalfOpenLimit int
// Create seeder and a Torrent.
cfg := TestingConfig()
cfg.Seed = true
- cfg.UploadRateLimiter = ps.SeederUploadRateLimiter
+ if ps.SeederUploadRateLimiter != nil {
+ cfg.UploadRateLimiter = ps.SeederUploadRateLimiter
+ }
// cfg.ListenAddr = "localhost:4000"
if ps.SeederStorage != nil {
cfg.DefaultStorage = ps.SeederStorage(greetingTempDir)
leecherDataDir, err := ioutil.TempDir("", "")
require.NoError(t, err)
defer os.RemoveAll(leecherDataDir)
+ cfg = TestingConfig()
if ps.LeecherStorage == nil {
cfg.DataDir = leecherDataDir
} else {
cfg.DefaultStorage = ps.LeecherStorage(leecherDataDir)
}
- cfg.DownloadRateLimiter = ps.LeecherDownloadRateLimiter
+ if ps.LeecherDownloadRateLimiter != nil {
+ cfg.DownloadRateLimiter = ps.LeecherDownloadRateLimiter
+ }
cfg.Seed = false
leecher, err := NewClient(cfg)
require.NoError(t, err)
func TestSeedAfterDownloading(t *testing.T) {
greetingTempDir, mi := testutil.GreetingTestTorrent()
defer os.RemoveAll(greetingTempDir)
+
cfg := TestingConfig()
cfg.Seed = true
cfg.DataDir = greetingTempDir
require.NoError(t, err)
assert.True(t, ok)
seederTorrent.VerifyData()
+
+ cfg = TestingConfig()
+ cfg.Seed = true
cfg.DataDir, err = ioutil.TempDir("", "")
require.NoError(t, err)
defer os.RemoveAll(cfg.DataDir)
require.NoError(t, err)
defer leecher.Close()
testutil.ExportStatusWriter(leecher, "l")
+
+ cfg = TestingConfig()
cfg.Seed = false
cfg.DataDir, err = ioutil.TempDir("", "")
require.NoError(t, err)
defer ss.Close()
var tts []*Torrent
ih := testutil.GreetingMetaInfo().HashInfoBytes()
+ cfg := TestingConfig()
+ cfg.DisableAcceptRateLimiting = true
+ cfg.dropDuplicatePeerIds = true
for i := range iter.N(3) {
- cl, err := NewClient(TestingConfig())
+ cl, err := NewClient(cfg)
require.NoError(t, err)
defer cl.Close()
tt, _ := cl.AddTorrentInfoHash(ih)