@@ -331,7 +331,7 @@ fn test_get_anchors_processing_info() {
331
331
332
332
// ======
333
333
// collated shard block 0:17, then collated master block 1:967
334
- // master block processed all extrenals, so it processed the same anchors
334
+ // master block processed less externals because of large queue
335
335
let prev_block_id = BlockId {
336
336
shard : shard_id,
337
337
seqno : 17 ,
@@ -347,8 +347,8 @@ fn test_get_anchors_processing_info() {
347
347
mc_data. block_id . seqno = 967 ;
348
348
mc_data. gen_chain_time = 1732479499855 ;
349
349
mc_data. processed_upto . externals = Some ( ExternalsProcessedUpto {
350
- processed_to : ( 1764 , 23429 ) ,
351
- read_to : ( 1764 , 23429 ) ,
350
+ processed_to : ( 1752 , 12000 ) ,
351
+ read_to : ( 1752 , 12000 ) ,
352
352
} ) ;
353
353
let ( _, shard_desc) = mc_data. shards . get_mut ( 0 ) . unwrap ( ) ;
354
354
shard_desc. seqno = 17 ;
@@ -387,8 +387,53 @@ fn test_get_anchors_processing_info() {
387
387
assert_eq ! ( anchors_proc_info. last_imported_in_block_id, prev_block_id) ;
388
388
389
389
//======
390
- // collated master block 1:1005, it used shard block 0:17
391
- // so master processed anchors ahead of shard
390
+ // collated master block 1:968, it used the same shard block 0:17
391
+ // master still processed less externals then shard
392
+ mc_data. block_id . seqno = 968 ;
393
+ mc_data. gen_chain_time = 1732479502300 ;
394
+ mc_data. processed_upto . externals = Some ( ExternalsProcessedUpto {
395
+ processed_to : ( 1756 , 7000 ) ,
396
+ read_to : ( 1756 , 7000 ) ,
397
+ } ) ;
398
+ let ( _, shard_desc) = mc_data. shards . get_mut ( 0 ) . unwrap ( ) ;
399
+ shard_desc. seqno = 17 ;
400
+ shard_desc. top_sc_block_updated = false ;
401
+
402
+ //------
403
+ // will get anchors processing info from prev shard state
404
+ // because it is still ahead of master
405
+ let anchors_proc_info_opt = CollatorStdImpl :: get_anchors_processing_info (
406
+ & shard_id,
407
+ & mc_data,
408
+ & prev_block_id,
409
+ prev_gen_chain_time,
410
+ prev_processed_upto_externals. as_ref ( ) ,
411
+ ) ;
412
+ assert ! ( anchors_proc_info_opt. is_some( ) ) ;
413
+ let anchors_proc_info = anchors_proc_info_opt. unwrap ( ) ;
414
+ assert_eq ! (
415
+ anchors_proc_info. processed_to_anchor_id,
416
+ prev_processed_upto_externals
417
+ . as_ref( )
418
+ . map( |upto| upto. processed_to. 0 )
419
+ . unwrap_or_default( ) ,
420
+ ) ;
421
+ assert_eq ! (
422
+ anchors_proc_info. processed_to_msgs_offset,
423
+ prev_processed_upto_externals
424
+ . as_ref( )
425
+ . map( |upto| upto. processed_to. 1 )
426
+ . unwrap_or_default( ) ,
427
+ ) ;
428
+ assert_eq ! (
429
+ anchors_proc_info. last_imported_chain_time,
430
+ prev_gen_chain_time,
431
+ ) ;
432
+ assert_eq ! ( anchors_proc_info. last_imported_in_block_id, prev_block_id) ;
433
+
434
+ //======
435
+ // collated master block 1:1005, it used the same shard block 0:17
436
+ // but master processed anchors ahead of shard
392
437
mc_data. block_id . seqno = 1005 ;
393
438
mc_data. gen_chain_time = 1732479530330 ;
394
439
mc_data. processed_upto . externals = Some ( ExternalsProcessedUpto {
0 commit comments