@@ -140,7 +140,7 @@ func createMultipleRandomTriesMini(t *testing.T) []*trie.MTrie {
140140 var err error
141141 // add tries with no shared paths
142142 for i := 0 ; i < 5 ; i ++ {
143- paths , payloads := randNPathPayloads (10 )
143+ paths , payloads := randNPathPayloads (20 )
144144 activeTrie , _ , err = trie .NewTrieWithUpdatedRegisters (activeTrie , paths , payloads , false )
145145 require .NoError (t , err , "update registers" )
146146 tries = append (tries , activeTrie )
@@ -318,9 +318,14 @@ func TestWriteAndReadCheckpointV6LeafEmptyTrie(t *testing.T) {
318318 fileName := "checkpoint-empty-trie"
319319 logger := unittest .Logger ()
320320 require .NoErrorf (t , StoreCheckpointV6Concurrently (tries , dir , fileName , & logger ), "fail to store checkpoint" )
321- resultChan , err := OpenAndReadLeafNodesFromCheckpointV6 (dir , fileName , & logger )
322- require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
323- for range resultChan {
321+
322+ bufSize := 10
323+ leafNodesCh := make (chan * LeafNode , bufSize )
324+ go func () {
325+ err := OpenAndReadLeafNodesFromCheckpointV6 (leafNodesCh , dir , fileName , & logger )
326+ require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
327+ }()
328+ for range leafNodesCh {
324329 require .Fail (t , "should not return any nodes" )
325330 }
326331 })
@@ -332,14 +337,17 @@ func TestWriteAndReadCheckpointV6LeafSimpleTrie(t *testing.T) {
332337 fileName := "checkpoint"
333338 logger := unittest .Logger ()
334339 require .NoErrorf (t , StoreCheckpointV6Concurrently (tries , dir , fileName , & logger ), "fail to store checkpoint" )
335- resultChan , err := OpenAndReadLeafNodesFromCheckpointV6 (dir , fileName , & logger )
336- require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
340+ bufSize := 1
341+ leafNodesCh := make (chan * LeafNode , bufSize )
342+ go func () {
343+ err := OpenAndReadLeafNodesFromCheckpointV6 (leafNodesCh , dir , fileName , & logger )
344+ require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
345+ }()
337346 resultPayloads := make ([]ledger.Payload , 0 )
338- for readResult := range resultChan {
339- require .NoError (t , readResult .Err , "no errors in read results" )
347+ for leafNode := range leafNodesCh {
340348 // avoid dummy payload from empty trie
341- if readResult . LeafNode .Payload != nil {
342- resultPayloads = append (resultPayloads , * readResult . LeafNode .Payload )
349+ if leafNode .Payload != nil {
350+ resultPayloads = append (resultPayloads , * leafNode .Payload )
343351 }
344352 }
345353 require .EqualValues (t , tries [1 ].AllPayloads (), resultPayloads )
@@ -352,12 +360,15 @@ func TestWriteAndReadCheckpointV6LeafMultipleTries(t *testing.T) {
352360 tries := createMultipleRandomTriesMini (t )
353361 logger := unittest .Logger ()
354362 require .NoErrorf (t , StoreCheckpointV6Concurrently (tries , dir , fileName , & logger ), "fail to store checkpoint" )
355- resultChan , err := OpenAndReadLeafNodesFromCheckpointV6 (dir , fileName , & logger )
356- require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
363+ bufSize := 5
364+ leafNodesCh := make (chan * LeafNode , bufSize )
365+ go func () {
366+ err := OpenAndReadLeafNodesFromCheckpointV6 (leafNodesCh , dir , fileName , & logger )
367+ require .NoErrorf (t , err , "fail to read checkpoint %v/%v" , dir , fileName )
368+ }()
357369 resultPayloads := make ([]ledger.Payload , 0 )
358- for readResult := range resultChan {
359- require .NoError (t , readResult .Err , "no errors in read results" )
360- resultPayloads = append (resultPayloads , * readResult .LeafNode .Payload )
370+ for leafNode := range leafNodesCh {
371+ resultPayloads = append (resultPayloads , * leafNode .Payload )
361372 }
362373 require .NotEmpty (t , resultPayloads )
363374 })
@@ -528,7 +539,9 @@ func TestAllPartFileExistLeafReader(t *testing.T) {
528539 err = os .Remove (fileToDelete )
529540 require .NoError (t , err , "fail to remove part file" )
530541
531- _ , err = OpenAndReadLeafNodesFromCheckpointV6 (dir , fileName , & logger )
542+ bufSize := 10
543+ leafNodesCh := make (chan * LeafNode , bufSize )
544+ err = OpenAndReadLeafNodesFromCheckpointV6 (leafNodesCh , dir , fileName , & logger )
532545 require .ErrorIs (t , err , os .ErrNotExist , "wrong error type returned" )
533546 }
534547 })
0 commit comments