6 "github.com/anacrolix/missinggo/v2/resource"
7 "github.com/stretchr/testify/assert"
8 "github.com/stretchr/testify/require"
10 "github.com/anacrolix/torrent/metainfo"
13 // Two different torrents opened from the same storage. Closing one should not
14 // break the piece completion on the other.
15 func testIssue95(t *testing.T, ci ClientImpl) {
17 Files: []metainfo.FileInfo{{Path: []string{"a"}}},
18 Pieces: make([]byte, 20),
21 t1, err := c.OpenTorrent(i1, metainfo.HashBytes([]byte("a")))
22 require.NoError(t, err)
25 Files: []metainfo.FileInfo{{Path: []string{"a"}}},
26 Pieces: make([]byte, 20),
28 t2, err := c.OpenTorrent(i2, metainfo.HashBytes([]byte("b")))
29 require.NoError(t, err)
31 t2p := t2.Piece(i2.Piece(0))
32 assert.NoError(t, t1.Close())
33 assert.NotPanics(t, func() { t2p.Completion() })
36 func TestIssue95File(t *testing.T) {
43 func TestIssue95MMap(t *testing.T) {
50 func TestIssue95ResourcePieces(t *testing.T) {
51 testIssue95(t, NewResourcePieces(resource.OSFileProvider{}))