]> Sergey Matveev's repositories - btrtrc.git/blob - storage/issue96_test.go
1be98aa5e738cd8976e7587d96759638175be916
[btrtrc.git] / storage / issue96_test.go
1 package storage
2
3 import (
4         g "github.com/anacrolix/generics"
5         "testing"
6
7         "github.com/stretchr/testify/require"
8
9         "github.com/anacrolix/torrent/metainfo"
10 )
11
12 func testMarkedCompleteMissingOnRead(t *testing.T, csf func(string) ClientImplCloser) {
13         td := t.TempDir()
14         cic := csf(td)
15         defer cic.Close()
16         cs := NewClient(cic)
17         info := &metainfo.Info{
18                 PieceLength: 1,
19                 Files:       []metainfo.FileInfo{{Path: []string{"a"}, Length: 1}},
20         }
21         ts, err := cs.OpenTorrent(info, metainfo.Hash{})
22         require.NoError(t, err)
23         p := ts.PieceWithHash(info.Piece(0), g.None[[]byte]())
24         require.NoError(t, p.MarkComplete())
25         // require.False(t, p.GetIsComplete())
26         n, err := p.ReadAt(make([]byte, 1), 0)
27         require.Error(t, err)
28         require.EqualValues(t, 0, n)
29         require.False(t, p.Completion().Complete)
30 }
31
32 func TestMarkedCompleteMissingOnReadFile(t *testing.T) {
33         testMarkedCompleteMissingOnRead(t, NewFile)
34 }
35
36 func TestMarkedCompleteMissingOnReadFileBoltDB(t *testing.T) {
37         testMarkedCompleteMissingOnRead(t, NewBoltDB)
38 }