]> Sergey Matveev's repositories - btrtrc.git/blob - storage/possum/possum_test.go
1c0e81105db25851e47c43649495e2e397569337
[btrtrc.git] / storage / possum / possum_test.go
1 package possumTorrentStorage
2
3 import (
4         "testing"
5
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"
10
11         "github.com/anacrolix/torrent/storage"
12         test_storage "github.com/anacrolix/torrent/storage/test"
13 )
14
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())
18         if err != nil {
19                 b.Fatal(err)
20         }
21         possumDir.SetInstanceLimits(possum.Limits{
22                 DisableHolePunching: false,
23                 MaxValueLengthSum:   g.Some[uint64](test_storage.DefaultPieceSize * test_storage.DefaultNumPieces / 2),
24         })
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)
32 }