"fmt"
"path/filepath"
"testing"
- "time"
_ "github.com/anacrolix/envpprof"
"github.com/anacrolix/squirrel"
- "github.com/anacrolix/torrent/storage"
- test_storage "github.com/anacrolix/torrent/storage/test"
"github.com/dustin/go-humanize"
qt "github.com/frankban/quicktest"
+
+ "github.com/anacrolix/torrent/storage"
+ test_storage "github.com/anacrolix/torrent/storage/test"
+ "github.com/anacrolix/torrent/test"
)
+func TestLeecherStorage(t *testing.T) {
+ test.TestLeecherStorage(t, test.LeecherStorageTestCase{
+ "SqliteDirect",
+ func(s string) storage.ClientImplCloser {
+ path := filepath.Join(s, "sqlite3.db")
+ var opts NewDirectStorageOpts
+ opts.Path = path
+ cl, err := NewDirectStorage(opts)
+ if err != nil {
+ panic(err)
+ }
+ return cl
+ },
+ 0,
+ })
+}
+
func BenchmarkMarkComplete(b *testing.B) {
const pieceSize = test_storage.DefaultPieceSize
const noTriggers = false
- const noCacheBlobs = false
var capacity int64 = test_storage.DefaultNumPieces * pieceSize / 2
if noTriggers {
// Since we won't push out old pieces, we have to mark them incomplete manually.
var opts squirrel.NewCacheOpts
opts.Capacity = capacity
opts.NoTriggers = noTriggers
- opts.NoCacheBlobs = noCacheBlobs
benchOpts := func(b *testing.B) {
opts.Path = filepath.Join(b.TempDir(), "storage.db")
ci, err := NewDirectStorage(opts)
var opts NewDirectStorageOpts
opts.Memory = memory
opts.Capacity = capacity
- // opts.GcBlobs = true
- opts.BlobFlushInterval = time.Second
opts.NoTriggers = noTriggers
- opts.NoCacheBlobs = noCacheBlobs
directBench := func(b *testing.B) {
opts.Path = filepath.Join(b.TempDir(), "storage.db")
ci, err := NewDirectStorage(opts)