@@ -530,7 +530,7 @@ mod tests {
530
530
use {
531
531
super :: * ,
532
532
crate :: {
533
- shred:: { ProcessShredsStats , Shred , ShredFlags } ,
533
+ shred:: { ProcessShredsStats , Shred } ,
534
534
shredder:: { ReedSolomonCache , Shredder } ,
535
535
} ,
536
536
assert_matches:: assert_matches,
@@ -551,19 +551,21 @@ mod tests {
551
551
solana_logger:: setup ( ) ;
552
552
let mut packet = Packet :: default ( ) ;
553
553
let cache = RwLock :: new ( LruCache :: new ( /*capacity:*/ 128 ) ) ;
554
- let mut shred = Shred :: new_from_data (
555
- slot,
556
- 0xc0de ,
557
- 0xdead ,
558
- & [ 1 , 2 , 3 , 4 ] ,
559
- ShredFlags :: LAST_SHRED_IN_SLOT ,
554
+ let shredder = Shredder :: new ( slot, slot. saturating_sub ( 1 ) , 0 , 0 ) . unwrap ( ) ;
555
+ let keypair = Keypair :: new ( ) ;
556
+ let reed_solomon_cache = ReedSolomonCache :: default ( ) ;
557
+ let ( mut shreds, _) = shredder. entries_to_merkle_shreds_for_tests (
558
+ & keypair,
559
+ & [ ] ,
560
+ true ,
561
+ Some ( Hash :: default ( ) ) ,
560
562
0 ,
561
563
0 ,
562
- 0xc0de ,
564
+ & reed_solomon_cache,
565
+ & mut ProcessShredsStats :: default ( ) ,
563
566
) ;
567
+ let shred = shreds. pop ( ) . unwrap ( ) ;
564
568
assert_eq ! ( shred. slot( ) , slot) ;
565
- let keypair = Keypair :: new ( ) ;
566
- shred. sign ( & keypair) ;
567
569
trace ! ( "signature {}" , shred. signature( ) ) ;
568
570
packet. buffer_mut ( ) [ ..shred. payload ( ) . len ( ) ] . copy_from_slice ( shred. payload ( ) ) ;
569
571
packet. meta_mut ( ) . size = shred. payload ( ) . len ( ) ;
@@ -586,43 +588,30 @@ mod tests {
586
588
587
589
fn run_test_sigverify_shreds_cpu ( thread_pool : & ThreadPool , slot : Slot ) {
588
590
solana_logger:: setup ( ) ;
589
- let mut batch = PinnedPacketBatch :: default ( ) ;
590
591
let cache = RwLock :: new ( LruCache :: new ( /*capacity:*/ 128 ) ) ;
591
- let mut shred = Shred :: new_from_data (
592
- slot,
593
- 0xc0de ,
594
- 0xdead ,
595
- & [ 1 , 2 , 3 , 4 ] ,
596
- ShredFlags :: LAST_SHRED_IN_SLOT ,
597
- 0 ,
598
- 0 ,
599
- 0xc0de ,
600
- ) ;
601
592
let keypair = Keypair :: new ( ) ;
602
- shred. sign ( & keypair) ;
603
- batch. resize ( 1 , Packet :: default ( ) ) ;
604
- batch[ 0 ] . buffer_mut ( ) [ ..shred. payload ( ) . len ( ) ] . copy_from_slice ( shred. payload ( ) ) ;
605
- batch[ 0 ] . meta_mut ( ) . size = shred. payload ( ) . len ( ) ;
606
- let batch = PacketBatch :: from ( batch) ;
593
+ let batch = make_packet_batch ( & keypair, slot) ;
607
594
let mut batches = [ batch] ;
608
595
609
596
let leader_slots = HashMap :: from ( [ ( slot, keypair. pubkey ( ) ) ] ) ;
610
597
let rv = verify_shreds_cpu ( thread_pool, & batches, & leader_slots, & cache) ;
611
- assert_eq ! ( rv, vec! [ vec! [ 1 ] ] ) ;
598
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 1 ) ;
612
599
613
600
let wrong_keypair = Keypair :: new ( ) ;
614
601
let leader_slots = HashMap :: from ( [ ( slot, wrong_keypair. pubkey ( ) ) ] ) ;
615
602
let rv = verify_shreds_cpu ( thread_pool, & batches, & leader_slots, & cache) ;
616
- assert_eq ! ( rv, vec! [ vec! [ 0 ] ] ) ;
603
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 0 ) ;
617
604
618
605
let leader_slots = HashMap :: new ( ) ;
619
606
let rv = verify_shreds_cpu ( thread_pool, & batches, & leader_slots, & cache) ;
620
- assert_eq ! ( rv, vec! [ vec! [ 0 ] ] ) ;
607
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 0 ) ;
621
608
622
609
let leader_slots = HashMap :: from ( [ ( slot, keypair. pubkey ( ) ) ] ) ;
623
- batches[ 0 ] . first_mut ( ) . unwrap ( ) . meta_mut ( ) . size = 0 ;
610
+ batches[ 0 ]
611
+ . iter_mut ( )
612
+ . for_each ( |mut packet_ref| packet_ref. meta_mut ( ) . size = 0 ) ;
624
613
let rv = verify_shreds_cpu ( thread_pool, & batches, & leader_slots, & cache) ;
625
- assert_eq ! ( rv, vec! [ vec! [ 0 ] ] ) ;
614
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 0 ) ;
626
615
}
627
616
628
617
#[ test]
@@ -636,23 +625,8 @@ mod tests {
636
625
let recycler_cache = RecyclerCache :: default ( ) ;
637
626
let cache = RwLock :: new ( LruCache :: new ( /*capacity:*/ 128 ) ) ;
638
627
639
- let mut batch = PinnedPacketBatch :: default ( ) ;
640
- let mut shred = Shred :: new_from_data (
641
- slot,
642
- 0xc0de ,
643
- 0xdead ,
644
- & [ 1 , 2 , 3 , 4 ] ,
645
- ShredFlags :: LAST_SHRED_IN_SLOT ,
646
- 0 ,
647
- 0 ,
648
- 0xc0de ,
649
- ) ;
650
628
let keypair = Keypair :: new ( ) ;
651
- shred. sign ( & keypair) ;
652
- batch. resize ( 1 , Packet :: default ( ) ) ;
653
- batch[ 0 ] . buffer_mut ( ) [ ..shred. payload ( ) . len ( ) ] . copy_from_slice ( shred. payload ( ) ) ;
654
- batch[ 0 ] . meta_mut ( ) . size = shred. payload ( ) . len ( ) ;
655
- let batch = PacketBatch :: from ( batch) ;
629
+ let batch = make_packet_batch ( & keypair, slot) ;
656
630
let mut batches = [ batch] ;
657
631
658
632
let leader_slots = HashMap :: from ( [ ( u64:: MAX , Pubkey :: default ( ) ) , ( slot, keypair. pubkey ( ) ) ] ) ;
@@ -663,7 +637,7 @@ mod tests {
663
637
& recycler_cache,
664
638
& cache,
665
639
) ;
666
- assert_eq ! ( rv, vec! [ vec! [ 1 ] ] ) ;
640
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 1 ) ;
667
641
668
642
let wrong_keypair = Keypair :: new ( ) ;
669
643
let leader_slots = HashMap :: from ( [
@@ -677,7 +651,7 @@ mod tests {
677
651
& recycler_cache,
678
652
& cache,
679
653
) ;
680
- assert_eq ! ( rv, vec! [ vec! [ 0 ] ] ) ;
654
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 0 ) ;
681
655
682
656
let leader_slots = HashMap :: from ( [ ( u64:: MAX , Pubkey :: default ( ) ) ] ) ;
683
657
let rv = verify_shreds_gpu (
@@ -687,9 +661,11 @@ mod tests {
687
661
& recycler_cache,
688
662
& cache,
689
663
) ;
690
- assert_eq ! ( rv, vec! [ vec! [ 0 ] ] ) ;
664
+ assert_eq ! ( rv. into_iter ( ) . flatten ( ) . all_equal_value ( ) . unwrap ( ) , 0 ) ;
691
665
692
- batches[ 0 ] . first_mut ( ) . unwrap ( ) . meta_mut ( ) . size = 0 ;
666
+ batches[ 0 ]
667
+ . iter_mut ( )
668
+ . for_each ( |mut pr| pr. meta_mut ( ) . size = 0 ) ;
693
669
let leader_slots = HashMap :: from ( [ ( u64:: MAX , Pubkey :: default ( ) ) , ( slot, keypair. pubkey ( ) ) ] ) ;
694
670
let rv = verify_shreds_gpu (
695
671
thread_pool,
@@ -698,7 +674,29 @@ mod tests {
698
674
& recycler_cache,
699
675
& cache,
700
676
) ;
701
- assert_eq ! ( rv, vec![ vec![ 0 ] ] ) ;
677
+ assert_eq ! ( rv. into_iter( ) . flatten( ) . all_equal_value( ) . unwrap( ) , 0 ) ;
678
+ }
679
+
680
+ fn make_packet_batch ( keypair : & Keypair , slot : u64 ) -> PacketBatch {
681
+ let mut batch = PinnedPacketBatch :: default ( ) ;
682
+ let shredder = Shredder :: new ( slot, slot. saturating_sub ( 1 ) , 0 , 0 ) . unwrap ( ) ;
683
+ let reed_solomon_cache = ReedSolomonCache :: default ( ) ;
684
+ let ( shreds, _) = shredder. entries_to_merkle_shreds_for_tests (
685
+ keypair,
686
+ & [ ] ,
687
+ true ,
688
+ Some ( Hash :: default ( ) ) ,
689
+ 0 ,
690
+ 0 ,
691
+ & reed_solomon_cache,
692
+ & mut ProcessShredsStats :: default ( ) ,
693
+ ) ;
694
+ batch. resize ( shreds. len ( ) , Packet :: default ( ) ) ;
695
+ for i in 0 ..shreds. len ( ) {
696
+ batch[ i] . buffer_mut ( ) [ ..shreds[ i] . payload ( ) . len ( ) ] . copy_from_slice ( shreds[ i] . payload ( ) ) ;
697
+ batch[ i] . meta_mut ( ) . size = shreds[ i] . payload ( ) . len ( ) ;
698
+ }
699
+ PacketBatch :: from ( batch)
702
700
}
703
701
704
702
#[ test]
0 commit comments