@@ -8,14 +8,17 @@ import (
88 "testing"
99
1010 "github.com/ipfs/go-cid"
11+ "github.com/ipfs/go-datastore"
12+ dss "github.com/ipfs/go-datastore/sync"
13+ blockstore "github.com/ipfs/go-ipfs-blockstore"
1114 dag "github.com/ipfs/go-merkledag"
12- dstest "github.com/ipfs/go-merkledag/test"
1315 basicnode "github.com/ipld/go-ipld-prime/node/basic"
1416 "github.com/ipld/go-ipld-prime/traversal/selector"
1517 "github.com/ipld/go-ipld-prime/traversal/selector/builder"
1618 "github.com/stretchr/testify/mock"
1719 "github.com/stretchr/testify/require"
1820
21+ "github.com/filecoin-project/go-multistore"
1922 "github.com/filecoin-project/sector-storage/ffiwrapper"
2023 "github.com/filecoin-project/specs-actors/actors/abi"
2124
@@ -33,13 +36,18 @@ func Test_ThereAndBackAgain(t *testing.T) {
3336 store , err := filestore .NewLocalFileStore (tempDir )
3437 require .NoError (t , err )
3538
36- sourceBserv := dstest .Bserv ()
37- sourceBs := sourceBserv .Blockstore ()
39+ ds := dss .MutexWrap (datastore .NewMapDatastore ())
40+ multiStore , err := multistore .NewMultiDstore (ds )
41+ require .NoError (t , err )
42+ bs := blockstore .NewBlockstore (ds )
3843
39- pio := pieceio .NewPieceIOWithStore (cio , store , sourceBs )
44+ pio := pieceio .NewPieceIOWithStore (cio , store , bs , multiStore )
4045 require .NoError (t , err )
4146
42- dserv := dag .NewDAGService (sourceBserv )
47+ storeID := multiStore .Next ()
48+ mstore , err := multiStore .Get (storeID )
49+ require .NoError (t , err )
50+ dserv := mstore .DAG
4351 a := dag .NewRawNode ([]byte ("aaaa" ))
4452 b := dag .NewRawNode ([]byte ("bbbb" ))
4553 c := dag .NewRawNode ([]byte ("cccc" ))
@@ -69,7 +77,7 @@ func Test_ThereAndBackAgain(t *testing.T) {
6977 ssb .ExploreIndex (1 , ssb .ExploreRecursive (selector .RecursionLimitNone (), ssb .ExploreAll (ssb .ExploreRecursiveEdge ()))))
7078 }).Node ()
7179
72- pcid , tmpPath , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
80+ pcid , tmpPath , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
7381 require .NoError (t , err )
7482 tmpFile , err := store .Open (tmpPath )
7583 require .NoError (t , err )
@@ -111,7 +119,7 @@ func Test_ThereAndBackAgain(t *testing.T) {
111119 reader = tmpFile
112120 }
113121
114- id , err := pio .ReadPiece (reader )
122+ id , err := pio .ReadPiece (& storeID , reader )
115123 require .NoError (t , err )
116124 require .Equal (t , nd3 .Cid (), id )
117125}
@@ -123,11 +131,17 @@ func Test_StoreRestoreMemoryBuffer(t *testing.T) {
123131 store , err := filestore .NewLocalFileStore (tempDir )
124132 require .NoError (t , err )
125133
126- sourceBserv := dstest .Bserv ()
127- sourceBs := sourceBserv .Blockstore ()
128- pio := pieceio .NewPieceIOWithStore (cio , store , sourceBs )
134+ ds := dss .MutexWrap (datastore .NewMapDatastore ())
135+ multiStore , err := multistore .NewMultiDstore (ds )
136+ require .NoError (t , err )
137+ bs := blockstore .NewBlockstore (ds )
138+
139+ pio := pieceio .NewPieceIOWithStore (cio , store , bs , multiStore )
129140
130- dserv := dag .NewDAGService (sourceBserv )
141+ storeID := multiStore .Next ()
142+ mstore , err := multiStore .Get (storeID )
143+ require .NoError (t , err )
144+ dserv := mstore .DAG
131145 a := dag .NewRawNode ([]byte ("aaaa" ))
132146 b := dag .NewRawNode ([]byte ("bbbb" ))
133147 c := dag .NewRawNode ([]byte ("cccc" ))
@@ -157,7 +171,7 @@ func Test_StoreRestoreMemoryBuffer(t *testing.T) {
157171 ssb .ExploreIndex (1 , ssb .ExploreRecursive (selector .RecursionLimitNone (), ssb .ExploreAll (ssb .ExploreRecursiveEdge ()))))
158172 }).Node ()
159173
160- commitment , tmpPath , paddedSize , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
174+ commitment , tmpPath , paddedSize , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
161175 require .NoError (t , err )
162176 tmpFile , err := store .Open (tmpPath )
163177 require .NoError (t , err )
@@ -188,11 +202,18 @@ func Test_PieceCommitmentEquivalenceMemoryFile(t *testing.T) {
188202 store , err := filestore .NewLocalFileStore (tempDir )
189203 require .NoError (t , err )
190204
191- sourceBserv := dstest .Bserv ()
192- sourceBs := sourceBserv .Blockstore ()
193- pio := pieceio .NewPieceIOWithStore (cio , store , sourceBs )
205+ ds := dss .MutexWrap (datastore .NewMapDatastore ())
206+ multiStore , err := multistore .NewMultiDstore (ds )
207+ require .NoError (t , err )
208+ bs := blockstore .NewBlockstore (ds )
209+
210+ pio := pieceio .NewPieceIOWithStore (cio , store , bs , multiStore )
211+
212+ storeID := multiStore .Next ()
213+ mstore , err := multiStore .Get (storeID )
214+ require .NoError (t , err )
215+ dserv := mstore .DAG
194216
195- dserv := dag .NewDAGService (sourceBserv )
196217 a := dag .NewRawNode ([]byte ("aaaa" ))
197218 b := dag .NewRawNode ([]byte ("bbbb" ))
198219 c := dag .NewRawNode ([]byte ("cccc" ))
@@ -222,13 +243,13 @@ func Test_PieceCommitmentEquivalenceMemoryFile(t *testing.T) {
222243 ssb .ExploreIndex (1 , ssb .ExploreRecursive (selector .RecursionLimitNone (), ssb .ExploreAll (ssb .ExploreRecursiveEdge ()))))
223244 }).Node ()
224245
225- fcommitment , tmpPath , fpaddedSize , ferr := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
246+ fcommitment , tmpPath , fpaddedSize , ferr := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
226247 defer func () {
227248 deferErr := store .Delete (tmpPath )
228249 require .NoError (t , deferErr )
229250 }()
230251
231- mcommitment , mpaddedSize , merr := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
252+ mcommitment , mpaddedSize , merr := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
232253 require .Equal (t , fcommitment , mcommitment )
233254 require .Equal (t , fpaddedSize , mpaddedSize )
234255 require .Equal (t , ferr , merr )
@@ -237,9 +258,16 @@ func Test_PieceCommitmentEquivalenceMemoryFile(t *testing.T) {
237258}
238259
239260func Test_Failures (t * testing.T ) {
240- sourceBserv := dstest .Bserv ()
241- sourceBs := sourceBserv .Blockstore ()
242- dserv := dag .NewDAGService (sourceBserv )
261+
262+ ds := dss .MutexWrap (datastore .NewMapDatastore ())
263+ multiStore , err := multistore .NewMultiDstore (ds )
264+ require .NoError (t , err )
265+ bs := blockstore .NewBlockstore (ds )
266+
267+ storeID := multiStore .Next ()
268+ mstore , err := multiStore .Get (storeID )
269+ require .NoError (t , err )
270+ dserv := mstore .DAG
243271 a := dag .NewRawNode ([]byte ("aaaa" ))
244272 b := dag .NewRawNode ([]byte ("bbbb" ))
245273 c := dag .NewRawNode ([]byte ("cccc" ))
@@ -272,8 +300,8 @@ func Test_Failures(t *testing.T) {
272300 t .Run ("create temp file fails" , func (t * testing.T ) {
273301 fsmock := fsmocks.FileStore {}
274302 fsmock .On ("CreateTemp" ).Return (nil , fmt .Errorf ("Failed" ))
275- pio := pieceio .NewPieceIOWithStore (nil , & fsmock , sourceBs )
276- _ , _ , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
303+ pio := pieceio .NewPieceIOWithStore (nil , & fsmock , bs , multiStore )
304+ _ , _ , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
277305 require .Error (t , err )
278306 })
279307 t .Run ("write CAR fails" , func (t * testing.T ) {
@@ -284,17 +312,17 @@ func Test_Failures(t *testing.T) {
284312 ciomock := pmocks.CarIO {}
285313 any := mock .Anything
286314 ciomock .On ("WriteCar" , any , any , any , any , any ).Return (fmt .Errorf ("failed to write car" ))
287- pio := pieceio .NewPieceIOWithStore (& ciomock , store , sourceBs )
288- _ , _ , _ , err = pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
315+ pio := pieceio .NewPieceIOWithStore (& ciomock , store , bs , multiStore )
316+ _ , _ , _ , err = pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
289317 require .Error (t , err )
290318 })
291319 t .Run ("prepare CAR fails" , func (t * testing.T ) {
292320
293321 ciomock := pmocks.CarIO {}
294322 any := mock .Anything
295323 ciomock .On ("PrepareCar" , any , any , any , any ).Return (nil , fmt .Errorf ("failed to prepare car" ))
296- pio := pieceio .NewPieceIO (& ciomock , sourceBs )
297- _ , _ , err := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
324+ pio := pieceio .NewPieceIO (& ciomock , bs , multiStore )
325+ _ , _ , err := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
298326 require .Error (t , err )
299327 })
300328 t .Run ("PreparedCard dump operation fails" , func (t * testing.T ) {
@@ -304,8 +332,8 @@ func Test_Failures(t *testing.T) {
304332 ciomock .On ("PrepareCar" , any , any , any , any ).Return (& preparedCarMock , nil )
305333 preparedCarMock .On ("Size" ).Return (uint64 (1000 ))
306334 preparedCarMock .On ("Dump" , any ).Return (fmt .Errorf ("failed to write car" ))
307- pio := pieceio .NewPieceIO (& ciomock , sourceBs )
308- _ , _ , err := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
335+ pio := pieceio .NewPieceIO (& ciomock , bs , multiStore )
336+ _ , _ , err := pio .GeneratePieceCommitment (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
309337 require .Error (t , err )
310338 })
311339 t .Run ("seek fails" , func (t * testing.T ) {
@@ -331,8 +359,8 @@ func Test_Failures(t *testing.T) {
331359 mockfile .On ("Path" ).Return (filestore .Path ("mock" )).Once ()
332360 mockfile .On ("Seek" , mock .Anything , mock .Anything ).Return (int64 (0 ), fmt .Errorf ("seek failed" ))
333361
334- pio := pieceio .NewPieceIOWithStore (cio , & fsmock , sourceBs )
335- _ , _ , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node )
362+ pio := pieceio .NewPieceIOWithStore (cio , & fsmock , bs , multiStore )
363+ _ , _ , _ , err := pio .GeneratePieceCommitmentToFile (abi .RegisteredSealProof_StackedDrg2KiBV1 , nd3 .Cid (), node , & storeID )
336364 require .Error (t , err )
337365 })
338366}
0 commit comments