Skip to content

Commit bf277c1

Browse files
authored
sigverify_shreds: rm legacy (#7171)
* rm legacy shreds from sigverify_shreds.rs * extract common code into function
1 parent b6feac1 commit bf277c1

File tree

1 file changed

+50
-52
lines changed

1 file changed

+50
-52
lines changed

ledger/src/sigverify_shreds.rs

Lines changed: 50 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ mod tests {
530530
use {
531531
super::*,
532532
crate::{
533-
shred::{ProcessShredsStats, Shred, ShredFlags},
533+
shred::{ProcessShredsStats, Shred},
534534
shredder::{ReedSolomonCache, Shredder},
535535
},
536536
assert_matches::assert_matches,
@@ -551,19 +551,21 @@ mod tests {
551551
solana_logger::setup();
552552
let mut packet = Packet::default();
553553
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()),
560562
0,
561563
0,
562-
0xc0de,
564+
&reed_solomon_cache,
565+
&mut ProcessShredsStats::default(),
563566
);
567+
let shred = shreds.pop().unwrap();
564568
assert_eq!(shred.slot(), slot);
565-
let keypair = Keypair::new();
566-
shred.sign(&keypair);
567569
trace!("signature {}", shred.signature());
568570
packet.buffer_mut()[..shred.payload().len()].copy_from_slice(shred.payload());
569571
packet.meta_mut().size = shred.payload().len();
@@ -586,43 +588,30 @@ mod tests {
586588

587589
fn run_test_sigverify_shreds_cpu(thread_pool: &ThreadPool, slot: Slot) {
588590
solana_logger::setup();
589-
let mut batch = PinnedPacketBatch::default();
590591
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-
);
601592
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);
607594
let mut batches = [batch];
608595

609596
let leader_slots = HashMap::from([(slot, keypair.pubkey())]);
610597
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);
612599

613600
let wrong_keypair = Keypair::new();
614601
let leader_slots = HashMap::from([(slot, wrong_keypair.pubkey())]);
615602
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);
617604

618605
let leader_slots = HashMap::new();
619606
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);
621608

622609
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);
624613
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);
626615
}
627616

628617
#[test]
@@ -636,23 +625,8 @@ mod tests {
636625
let recycler_cache = RecyclerCache::default();
637626
let cache = RwLock::new(LruCache::new(/*capacity:*/ 128));
638627

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-
);
650628
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);
656630
let mut batches = [batch];
657631

658632
let leader_slots = HashMap::from([(u64::MAX, Pubkey::default()), (slot, keypair.pubkey())]);
@@ -663,7 +637,7 @@ mod tests {
663637
&recycler_cache,
664638
&cache,
665639
);
666-
assert_eq!(rv, vec![vec![1]]);
640+
assert_eq!(rv.into_iter().flatten().all_equal_value().unwrap(), 1);
667641

668642
let wrong_keypair = Keypair::new();
669643
let leader_slots = HashMap::from([
@@ -677,7 +651,7 @@ mod tests {
677651
&recycler_cache,
678652
&cache,
679653
);
680-
assert_eq!(rv, vec![vec![0]]);
654+
assert_eq!(rv.into_iter().flatten().all_equal_value().unwrap(), 0);
681655

682656
let leader_slots = HashMap::from([(u64::MAX, Pubkey::default())]);
683657
let rv = verify_shreds_gpu(
@@ -687,9 +661,11 @@ mod tests {
687661
&recycler_cache,
688662
&cache,
689663
);
690-
assert_eq!(rv, vec![vec![0]]);
664+
assert_eq!(rv.into_iter().flatten().all_equal_value().unwrap(), 0);
691665

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);
693669
let leader_slots = HashMap::from([(u64::MAX, Pubkey::default()), (slot, keypair.pubkey())]);
694670
let rv = verify_shreds_gpu(
695671
thread_pool,
@@ -698,7 +674,29 @@ mod tests {
698674
&recycler_cache,
699675
&cache,
700676
);
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)
702700
}
703701

704702
#[test]

0 commit comments

Comments
 (0)