示例#1
0
func TestHashPieceAfterStorageClosed(t *testing.T) {
	td, err := ioutil.TempDir("", "")
	require.NoError(t, err)
	defer os.RemoveAll(td)
	cs := storage.NewFile(td)
	tt := &Torrent{}
	tt.info = &testutil.GreetingMetaInfo().Info
	tt.makePieces()
	tt.storage, err = cs.OpenTorrent(tt.info)
	require.NoError(t, err)
	require.NoError(t, tt.storage.Close())
	tt.hashPiece(0)
}
示例#2
0
func TestReaderReadContext(t *testing.T) {
	cl, err := NewClient(&TestingConfig)
	require.NoError(t, err)
	defer cl.Close()
	tt, err := cl.AddTorrent(testutil.GreetingMetaInfo())
	require.NoError(t, err)
	defer tt.Drop()
	ctx, _ := context.WithDeadline(context.Background(), time.Now().Add(time.Millisecond))
	r := tt.NewReader()
	defer r.Close()
	_, err = r.ReadContext(make([]byte, 1), ctx)
	require.EqualValues(t, context.DeadlineExceeded, err)
}
示例#3
0
func newGreetingLayout() (tl testLayout, err error) {
	tl.BaseDir, err = ioutil.TempDir("", "torrentfs")
	if err != nil {
		return
	}
	tl.Completed = filepath.Join(tl.BaseDir, "completed")
	os.Mkdir(tl.Completed, 0777)
	tl.MountDir = filepath.Join(tl.BaseDir, "mnt")
	os.Mkdir(tl.MountDir, 0777)
	testutil.CreateDummyTorrentData(tl.Completed)
	tl.Metainfo = testutil.GreetingMetaInfo()
	return
}
示例#4
0
func TestSetMaxEstablishedConn(t *testing.T) {
	var tts []*Torrent
	ih := testutil.GreetingMetaInfo().Info.Hash()
	cfg := TestingConfig
	for i := range iter.N(3) {
		cl, err := NewClient(&cfg)
		require.NoError(t, err)
		defer cl.Close()
		tt, _ := cl.AddTorrentInfoHash(ih)
		tt.SetMaxEstablishedConns(2)
		testutil.ExportStatusWriter(cl, fmt.Sprintf("%d", i))
		tts = append(tts, tt)
	}
	addPeers := func() {
		for i, tt := range tts {
			for _, _tt := range tts[:i] {
				addClientPeer(tt, _tt.cl)
			}
		}
	}
	waitTotalConns := func(num int) {
		for totalConns(tts) != num {
			time.Sleep(time.Millisecond)
		}
	}
	addPeers()
	waitTotalConns(6)
	tts[0].SetMaxEstablishedConns(1)
	waitTotalConns(4)
	tts[0].SetMaxEstablishedConns(0)
	waitTotalConns(2)
	tts[0].SetMaxEstablishedConns(1)
	addPeers()
	waitTotalConns(4)
	tts[0].SetMaxEstablishedConns(2)
	addPeers()
	waitTotalConns(6)
}