seeds rng for test_build_crds_filter test (#21031)
This commit is contained in:
parent
4aa12a52b6
commit
eea3fb327f
|
@ -672,7 +672,8 @@ pub(crate) mod tests {
|
||||||
crds_value::{CrdsData, Vote},
|
crds_value::{CrdsData, Vote},
|
||||||
},
|
},
|
||||||
itertools::Itertools,
|
itertools::Itertools,
|
||||||
rand::{seq::SliceRandom, thread_rng},
|
rand::{seq::SliceRandom, thread_rng, SeedableRng},
|
||||||
|
rand_chacha::ChaChaRng,
|
||||||
rayon::ThreadPoolBuilder,
|
rayon::ThreadPoolBuilder,
|
||||||
solana_perf::test_tx::test_tx,
|
solana_perf::test_tx::test_tx,
|
||||||
solana_sdk::{
|
solana_sdk::{
|
||||||
|
@ -957,11 +958,14 @@ pub(crate) mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_build_crds_filter() {
|
fn test_build_crds_filter() {
|
||||||
let mut rng = thread_rng();
|
const SEED: [u8; 32] = [0x55; 32];
|
||||||
|
let mut rng = ChaChaRng::from_seed(SEED);
|
||||||
let thread_pool = ThreadPoolBuilder::new().build().unwrap();
|
let thread_pool = ThreadPoolBuilder::new().build().unwrap();
|
||||||
let crds_gossip_pull = CrdsGossipPull::default();
|
let crds_gossip_pull = CrdsGossipPull::default();
|
||||||
let mut crds = Crds::default();
|
let mut crds = Crds::default();
|
||||||
let keypairs: Vec<_> = repeat_with(Keypair::new).take(10_000).collect();
|
let keypairs: Vec<_> = repeat_with(|| Keypair::generate(&mut rng))
|
||||||
|
.take(10_000)
|
||||||
|
.collect();
|
||||||
let mut num_inserts = 0;
|
let mut num_inserts = 0;
|
||||||
for _ in 0..40_000 {
|
for _ in 0..40_000 {
|
||||||
let keypair = keypairs.choose(&mut rng).unwrap();
|
let keypair = keypairs.choose(&mut rng).unwrap();
|
||||||
|
@ -980,7 +984,13 @@ pub(crate) mod tests {
|
||||||
let crds = crds.read().unwrap();
|
let crds = crds.read().unwrap();
|
||||||
let purged: Vec<_> = thread_pool.install(|| crds.purged().collect());
|
let purged: Vec<_> = thread_pool.install(|| crds.purged().collect());
|
||||||
let hash_values: Vec<_> = crds.values().map(|v| v.value_hash).chain(purged).collect();
|
let hash_values: Vec<_> = crds.values().map(|v| v.value_hash).chain(purged).collect();
|
||||||
assert_eq!(hash_values.len(), 40_000);
|
// CrdsValue::new_rand may generate exact same value twice in which
|
||||||
|
// case its hash-value is not added to purged values.
|
||||||
|
assert!(
|
||||||
|
hash_values.len() >= 40_000 - 5,
|
||||||
|
"hash_values.len(): {}",
|
||||||
|
hash_values.len()
|
||||||
|
);
|
||||||
let mut false_positives = 0;
|
let mut false_positives = 0;
|
||||||
for hash_value in hash_values {
|
for hash_value in hash_values {
|
||||||
let mut num_hits = 0;
|
let mut num_hits = 0;
|
||||||
|
|
Loading…
Reference in New Issue