コード例 #1
0
ファイル: issue35_test.go プロジェクト: CooCooooo/torrent
func TestInfohash(t *testing.T) {
	os.RemoveAll(filepath.Join(os.TempDir(), "torrent-test"))
	os.MkdirAll(filepath.Join(os.TempDir(), "torrent-test"), 0700)
	var cl_one *Client
	var cf_one *Config
	var err error
	if err != nil {
		t.Fatal(err)
	}
	cf_one = testingConfig()
	cf_one.ListenAddr = "localhost:43433"
	cf_one = addirs(cf_one)
	cl_one, err = NewClient(cf_one)
	if err != nil {
		t.Fatal(err)
	}
	tfp := filepath.Join(cf_one.DataDir, "testdata")
	writeranddata(tfp)
	b := metainfo.Builder{}
	b.AddFile(tfp)
	b.AddDhtNodes([]string{fmt.Sprintf(cl_one.DHT().ID())})
	ba, err := b.Submit()
	if err != nil {
		t.Fatal(err)
	}
	ttfp := filepath.Join(cf_one.ConfigDir, "/../torrent")
	ttf, err := os.Create(ttfp)
	if err != nil {
		t.Fatal(err)
	}
	ec, _ := ba.Start(ttf, runtime.NumCPU())
	err = <-ec
	if err != nil {
		t.Fatal(err)
	}
	ttf.Close()

	tor, err := cl_one.AddTorrentFromFile(ttfp)
	if err != nil {
		t.Fatal(err)
	}
	<-tor.GotInfo()
	tor.DownloadAll()
	if cl_one.WaitAll() == false {
		t.Fatal(errors.New("One did not download torrent"))
	}
}