4 "github.com/anacrolix/torrent/metainfo"
8 "github.com/anacrolix/torrent/dht"
15 var numclients int = 0
19 return filepath.Join(os.TempDir(), "wtp-test/", fmt.Sprintf("%d/", numclients))
22 func addirs(cf *Config) *Config {
25 cf.DataDir = filepath.Join(d, "/data")
26 os.MkdirAll(cf.DataDir, 0700)
27 cf.ConfigDir = filepath.Join(d, "/config")
28 os.MkdirAll(cf.ConfigDir, 0700)
32 func testingConfig() *Config {
34 ListenAddr: "localhost:0",
36 DisableTrackers: true,
37 NoDefaultBlocklist: true,
39 DisableMetainfoCache: true,
43 DataDir: filepath.Join(os.TempDir(), "torrent-test/data"),
44 ConfigDir: filepath.Join(os.TempDir(), "torrent-test/config"),
45 DHTConfig: &dht.ServerConfig{
47 BootstrapNodes: []string{},
54 func writeranddata(path string) error {
56 var to_write int64 = 1024 * 1024 //1MB
57 f, err := os.Create(path)
62 rnd, err := os.Open("/dev/urandom")
67 w, err = io.CopyN(f, rnd, to_write)
72 return errors.New("Short read on /dev/random")
77 func TestInfohash(t *testing.T){
78 os.RemoveAll(filepath.Join(os.TempDir(), "torrent-test"))
79 os.MkdirAll(filepath.Join(os.TempDir(), "torrent-test"), 0700)
86 cf_one = testingConfig()
87 cf_one.ListenAddr = "localhost:43433"
88 cf_one = addirs(cf_one)
89 cl_one, err = NewClient(cf_one)
93 tfp := filepath.Join(cf_one.DataDir, "testdata")
95 b := metainfo.Builder{}
97 b.AddDhtNodes([]string{fmt.Sprintf(cl_one.DHT().ID())})
102 ttfp := filepath.Join(cf_one.ConfigDir, "/../torrent")
103 ttf, err := os.Create(ttfp)
107 ec, _ := ba.Start(ttf, runtime.NumCPU())
114 tor, err := cl_one.AddTorrentFromFile(ttfp)
120 if cl_one.WaitAll() == false {
121 t.Fatal(errors.New("One did not download torrent"))