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