github.com/anacrolix/torrent@v1.61.0/storage/possum/possum_test.go (about) 1 //go:build cgo 2 3 package possumTorrentStorage 4 5 import ( 6 "testing" 7 8 g "github.com/anacrolix/generics" 9 "github.com/anacrolix/log" 10 possum "github.com/anacrolix/possum/go" 11 possumResource "github.com/anacrolix/possum/go/resource" 12 _ "github.com/anacrolix/possum/go/testlink" 13 14 "github.com/anacrolix/torrent/storage" 15 test_storage "github.com/anacrolix/torrent/storage/test" 16 ) 17 18 // This should be made to mirror the benchmarks for sqlite storage. 19 func BenchmarkProvider(b *testing.B) { 20 possumDir, err := possum.Open(b.TempDir()) 21 if err != nil { 22 b.Fatal(err) 23 } 24 possumDir.SetInstanceLimits(possum.Limits{ 25 DisableHolePunching: false, 26 MaxValueLengthSum: g.Some[uint64](test_storage.DefaultPieceSize * test_storage.DefaultNumPieces / 2), 27 }) 28 defer possumDir.Close() 29 possumProvider := possumResource.Provider{Handle: possumDir} 30 possumTorrentProvider := Provider{Provider: possumProvider, Logger: log.Default} 31 clientStorageImpl := storage.NewResourcePiecesOpts( 32 possumTorrentProvider, 33 storage.ResourcePiecesOpts{LeaveIncompleteChunks: true}) 34 test_storage.BenchmarkPieceMarkComplete( 35 b, 36 clientStorageImpl, 37 test_storage.DefaultPieceSize, 38 test_storage.DefaultNumPieces, 39 0, 40 ) 41 }