1 package possumTorrentStorage
6 g "github.com/anacrolix/generics"
7 "github.com/anacrolix/log"
8 possum "github.com/anacrolix/possum/go"
9 possumResource "github.com/anacrolix/possum/go/resource"
11 "github.com/anacrolix/torrent/storage"
12 test_storage "github.com/anacrolix/torrent/storage/test"
15 // This should be made to mirror the benchmarks for sqlite storage.
16 func BenchmarkProvider(b *testing.B) {
17 possumDir, err := possum.Open(b.TempDir())
21 possumDir.SetInstanceLimits(possum.Limits{
22 DisableHolePunching: false,
23 MaxValueLengthSum: g.Some[uint64](test_storage.DefaultPieceSize * test_storage.DefaultNumPieces / 2),
25 defer possumDir.Close()
26 possumProvider := possumResource.Provider{Handle: possumDir}
27 possumTorrentProvider := Provider{Provider: possumProvider, Logger: log.Default}
28 clientStorageImpl := storage.NewResourcePiecesOpts(
29 possumTorrentProvider,
30 storage.ResourcePiecesOpts{LeaveIncompleteChunks: true})
31 test_storage.BenchmarkPieceMarkComplete(b, clientStorageImpl, test_storage.DefaultPieceSize, test_storage.DefaultNumPieces, 0)