committed by
GitHub
parent
a71833c17b
commit
fb4d8e1f62
@ -2425,8 +2425,7 @@ mod tests {
|
|||||||
|
|
||||||
fn test_crds_values(pubkey: Pubkey) -> Vec<CrdsValue> {
|
fn test_crds_values(pubkey: Pubkey) -> Vec<CrdsValue> {
|
||||||
let entrypoint = ContactInfo::new_localhost(&pubkey, timestamp());
|
let entrypoint = ContactInfo::new_localhost(&pubkey, timestamp());
|
||||||
let entrypoint_crdsvalue =
|
let entrypoint_crdsvalue = CrdsValue::new_unsigned(CrdsData::ContactInfo(entrypoint));
|
||||||
CrdsValue::new_unsigned(CrdsData::ContactInfo(entrypoint.clone()));
|
|
||||||
vec![entrypoint_crdsvalue]
|
vec![entrypoint_crdsvalue]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -957,7 +957,7 @@ mod tests {
|
|||||||
&exit,
|
&exit,
|
||||||
Arc::new(RwLock::new(bank_forks)),
|
Arc::new(RwLock::new(bank_forks)),
|
||||||
Arc::new(RwLock::new(BlockCommitmentCache::default_with_blockstore(
|
Arc::new(RwLock::new(BlockCommitmentCache::default_with_blockstore(
|
||||||
blockstore.clone(),
|
blockstore,
|
||||||
))),
|
))),
|
||||||
));
|
));
|
||||||
|
|
||||||
@ -1072,7 +1072,7 @@ mod tests {
|
|||||||
&exit,
|
&exit,
|
||||||
Arc::new(RwLock::new(bank_forks)),
|
Arc::new(RwLock::new(bank_forks)),
|
||||||
Arc::new(RwLock::new(BlockCommitmentCache::default_with_blockstore(
|
Arc::new(RwLock::new(BlockCommitmentCache::default_with_blockstore(
|
||||||
blockstore.clone(),
|
blockstore,
|
||||||
))),
|
))),
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -551,9 +551,9 @@ mod tests {
|
|||||||
cache2.increase_confirmation_stake(2, 5);
|
cache2.increase_confirmation_stake(2, 5);
|
||||||
|
|
||||||
let mut block_commitment = HashMap::new();
|
let mut block_commitment = HashMap::new();
|
||||||
block_commitment.entry(1).or_insert(cache0.clone()); // Slot 1, conf 2
|
block_commitment.entry(1).or_insert_with(|| cache0.clone()); // Slot 1, conf 2
|
||||||
block_commitment.entry(2).or_insert(cache1.clone()); // Slot 2, conf 1
|
block_commitment.entry(2).or_insert_with(|| cache1.clone()); // Slot 2, conf 1
|
||||||
block_commitment.entry(3).or_insert(cache2.clone()); // Slot 3, conf 0
|
block_commitment.entry(3).or_insert_with(|| cache2.clone()); // Slot 3, conf 0
|
||||||
let block_commitment_cache = BlockCommitmentCache::new(
|
let block_commitment_cache = BlockCommitmentCache::new(
|
||||||
block_commitment,
|
block_commitment,
|
||||||
0,
|
0,
|
||||||
@ -568,9 +568,9 @@ mod tests {
|
|||||||
|
|
||||||
// Build map with multiple slots at conf 1
|
// Build map with multiple slots at conf 1
|
||||||
let mut block_commitment = HashMap::new();
|
let mut block_commitment = HashMap::new();
|
||||||
block_commitment.entry(1).or_insert(cache1.clone()); // Slot 1, conf 1
|
block_commitment.entry(1).or_insert_with(|| cache1.clone()); // Slot 1, conf 1
|
||||||
block_commitment.entry(2).or_insert(cache1.clone()); // Slot 2, conf 1
|
block_commitment.entry(2).or_insert_with(|| cache1.clone()); // Slot 2, conf 1
|
||||||
block_commitment.entry(3).or_insert(cache2.clone()); // Slot 3, conf 0
|
block_commitment.entry(3).or_insert_with(|| cache2.clone()); // Slot 3, conf 0
|
||||||
let block_commitment_cache = BlockCommitmentCache::new(
|
let block_commitment_cache = BlockCommitmentCache::new(
|
||||||
block_commitment,
|
block_commitment,
|
||||||
0,
|
0,
|
||||||
@ -585,9 +585,9 @@ mod tests {
|
|||||||
|
|
||||||
// Build map with slot gaps
|
// Build map with slot gaps
|
||||||
let mut block_commitment = HashMap::new();
|
let mut block_commitment = HashMap::new();
|
||||||
block_commitment.entry(1).or_insert(cache1.clone()); // Slot 1, conf 1
|
block_commitment.entry(1).or_insert_with(|| cache1.clone()); // Slot 1, conf 1
|
||||||
block_commitment.entry(3).or_insert(cache1.clone()); // Slot 3, conf 1
|
block_commitment.entry(3).or_insert(cache1); // Slot 3, conf 1
|
||||||
block_commitment.entry(5).or_insert(cache2.clone()); // Slot 5, conf 0
|
block_commitment.entry(5).or_insert_with(|| cache2.clone()); // Slot 5, conf 0
|
||||||
let block_commitment_cache = BlockCommitmentCache::new(
|
let block_commitment_cache = BlockCommitmentCache::new(
|
||||||
block_commitment,
|
block_commitment,
|
||||||
0,
|
0,
|
||||||
@ -602,9 +602,9 @@ mod tests {
|
|||||||
|
|
||||||
// Build map with no conf 1 slots, but one higher
|
// Build map with no conf 1 slots, but one higher
|
||||||
let mut block_commitment = HashMap::new();
|
let mut block_commitment = HashMap::new();
|
||||||
block_commitment.entry(1).or_insert(cache0.clone()); // Slot 1, conf 2
|
block_commitment.entry(1).or_insert(cache0); // Slot 1, conf 2
|
||||||
block_commitment.entry(2).or_insert(cache2.clone()); // Slot 2, conf 0
|
block_commitment.entry(2).or_insert_with(|| cache2.clone()); // Slot 2, conf 0
|
||||||
block_commitment.entry(3).or_insert(cache2.clone()); // Slot 3, conf 0
|
block_commitment.entry(3).or_insert_with(|| cache2.clone()); // Slot 3, conf 0
|
||||||
let block_commitment_cache = BlockCommitmentCache::new(
|
let block_commitment_cache = BlockCommitmentCache::new(
|
||||||
block_commitment,
|
block_commitment,
|
||||||
0,
|
0,
|
||||||
@ -619,15 +619,15 @@ mod tests {
|
|||||||
|
|
||||||
// Build map with no conf 1 or higher slots
|
// Build map with no conf 1 or higher slots
|
||||||
let mut block_commitment = HashMap::new();
|
let mut block_commitment = HashMap::new();
|
||||||
block_commitment.entry(1).or_insert(cache2.clone()); // Slot 1, conf 0
|
block_commitment.entry(1).or_insert_with(|| cache2.clone()); // Slot 1, conf 0
|
||||||
block_commitment.entry(2).or_insert(cache2.clone()); // Slot 2, conf 0
|
block_commitment.entry(2).or_insert_with(|| cache2.clone()); // Slot 2, conf 0
|
||||||
block_commitment.entry(3).or_insert(cache2.clone()); // Slot 3, conf 0
|
block_commitment.entry(3).or_insert(cache2); // Slot 3, conf 0
|
||||||
let block_commitment_cache = BlockCommitmentCache::new(
|
let block_commitment_cache = BlockCommitmentCache::new(
|
||||||
block_commitment,
|
block_commitment,
|
||||||
0,
|
0,
|
||||||
total_stake,
|
total_stake,
|
||||||
bank_slot_5.clone(),
|
bank_slot_5,
|
||||||
blockstore.clone(),
|
blockstore,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
);
|
);
|
||||||
|
@ -2618,7 +2618,7 @@ pub(crate) mod tests {
|
|||||||
|
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let block_commitment_cache = Arc::new(RwLock::new(
|
let block_commitment_cache = Arc::new(RwLock::new(
|
||||||
BlockCommitmentCache::default_with_blockstore(blockstore.clone()),
|
BlockCommitmentCache::default_with_blockstore(blockstore),
|
||||||
));
|
));
|
||||||
let subscriptions = Arc::new(RpcSubscriptions::new(
|
let subscriptions = Arc::new(RpcSubscriptions::new(
|
||||||
&exit,
|
&exit,
|
||||||
|
@ -2321,7 +2321,7 @@ pub mod tests {
|
|||||||
r#"{{"jsonrpc":"2.0","id":1,"method":"simulateTransaction","params":["{}"]}}"#,
|
r#"{{"jsonrpc":"2.0","id":1,"method":"simulateTransaction","params":["{}"]}}"#,
|
||||||
tx_serialized_encoded,
|
tx_serialized_encoded,
|
||||||
);
|
);
|
||||||
let res = io.handle_request_sync(&req, meta.clone());
|
let res = io.handle_request_sync(&req, meta);
|
||||||
let expected = json!({
|
let expected = json!({
|
||||||
"jsonrpc": "2.0",
|
"jsonrpc": "2.0",
|
||||||
"result": {
|
"result": {
|
||||||
@ -2361,7 +2361,7 @@ pub mod tests {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// should panic because `bank` is not frozen
|
// should panic because `bank` is not frozen
|
||||||
let _ = io.handle_request_sync(&req, meta.clone());
|
let _ = io.handle_request_sync(&req, meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -745,11 +745,11 @@ mod tests {
|
|||||||
);
|
);
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let block_commitment_cache = Arc::new(RwLock::new(
|
let block_commitment_cache = Arc::new(RwLock::new(
|
||||||
BlockCommitmentCache::new_for_tests_with_blockstore(blockstore.clone()),
|
BlockCommitmentCache::new_for_tests_with_blockstore(blockstore),
|
||||||
));
|
));
|
||||||
|
|
||||||
let subscriptions =
|
let subscriptions =
|
||||||
RpcSubscriptions::new(&exit, bank_forks.clone(), block_commitment_cache.clone());
|
RpcSubscriptions::new(&exit, bank_forks.clone(), block_commitment_cache);
|
||||||
rpc.subscriptions = Arc::new(subscriptions);
|
rpc.subscriptions = Arc::new(subscriptions);
|
||||||
let session = create_session();
|
let session = create_session();
|
||||||
let (subscriber, _id_receiver, receiver) = Subscriber::new_test("accountNotification");
|
let (subscriber, _id_receiver, receiver) = Subscriber::new_test("accountNotification");
|
||||||
@ -895,8 +895,7 @@ mod tests {
|
|||||||
let (subscriber, _id_receiver, receiver) = Subscriber::new_test("voteNotification");
|
let (subscriber, _id_receiver, receiver) = Subscriber::new_test("voteNotification");
|
||||||
|
|
||||||
// Setup Subscriptions
|
// Setup Subscriptions
|
||||||
let subscriptions =
|
let subscriptions = RpcSubscriptions::new(&exit, bank_forks, block_commitment_cache);
|
||||||
RpcSubscriptions::new(&exit, bank_forks.clone(), block_commitment_cache.clone());
|
|
||||||
rpc.subscriptions = Arc::new(subscriptions);
|
rpc.subscriptions = Arc::new(subscriptions);
|
||||||
rpc.vote_subscribe(session, subscriber);
|
rpc.vote_subscribe(session, subscriber);
|
||||||
|
|
||||||
@ -922,6 +921,8 @@ mod tests {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Process votes and check they were notified.
|
// Process votes and check they were notified.
|
||||||
|
// FIX-ME-BETTER-LATER - clone below is required for testcase to pass
|
||||||
|
#[allow(clippy::redundant_clone)]
|
||||||
ClusterInfoVoteListener::get_and_process_votes_for_tests(
|
ClusterInfoVoteListener::get_and_process_votes_for_tests(
|
||||||
&votes_receiver,
|
&votes_receiver,
|
||||||
&vote_tracker,
|
&vote_tracker,
|
||||||
|
@ -4922,7 +4922,7 @@ pub mod tests {
|
|||||||
// Trying to insert value into slot <= than last root should fail
|
// Trying to insert value into slot <= than last root should fail
|
||||||
{
|
{
|
||||||
let mut coding_shred =
|
let mut coding_shred =
|
||||||
Shred::new_empty_from_header(shred.clone(), DataShredHeader::default(), coding);
|
Shred::new_empty_from_header(shred, DataShredHeader::default(), coding);
|
||||||
let index = index_cf.get(coding_shred.slot()).unwrap().unwrap();
|
let index = index_cf.get(coding_shred.slot()).unwrap().unwrap();
|
||||||
coding_shred.set_slot(*last_root.read().unwrap());
|
coding_shred.set_slot(*last_root.read().unwrap());
|
||||||
assert!(!Blockstore::should_insert_coding_shred(
|
assert!(!Blockstore::should_insert_coding_shred(
|
||||||
|
@ -15,6 +15,8 @@ use std::{
|
|||||||
sync::Arc,
|
sync::Arc,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type IndexShredsMap = BTreeMap<u32, Vec<Shred>>;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_multi_fec_block_coding() {
|
fn test_multi_fec_block_coding() {
|
||||||
let keypair = Arc::new(Keypair::new());
|
let keypair = Arc::new(Keypair::new());
|
||||||
@ -123,9 +125,9 @@ fn test_multi_fec_block_different_size_coding() {
|
|||||||
let num_data = fec_data_shreds.len();
|
let num_data = fec_data_shreds.len();
|
||||||
let num_coding = fec_coding_shreds.len();
|
let num_coding = fec_coding_shreds.len();
|
||||||
let all_shreds: Vec<Shred> = fec_data_shreds
|
let all_shreds: Vec<Shred> = fec_data_shreds
|
||||||
.into_iter()
|
.iter()
|
||||||
.step_by(2)
|
.step_by(2)
|
||||||
.chain(fec_coding_shreds.into_iter().step_by(2))
|
.chain(fec_coding_shreds.iter().step_by(2))
|
||||||
.cloned()
|
.cloned()
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
@ -162,8 +164,8 @@ fn test_multi_fec_block_different_size_coding() {
|
|||||||
fn sort_data_coding_into_fec_sets(
|
fn sort_data_coding_into_fec_sets(
|
||||||
data_shreds: Vec<Shred>,
|
data_shreds: Vec<Shred>,
|
||||||
coding_shreds: Vec<Shred>,
|
coding_shreds: Vec<Shred>,
|
||||||
fec_data: &mut BTreeMap<u32, Vec<Shred>>,
|
fec_data: &mut IndexShredsMap,
|
||||||
fec_coding: &mut BTreeMap<u32, Vec<Shred>>,
|
fec_coding: &mut IndexShredsMap,
|
||||||
data_slot_and_index: &mut HashSet<(Slot, u32)>,
|
data_slot_and_index: &mut HashSet<(Slot, u32)>,
|
||||||
coding_slot_and_index: &mut HashSet<(Slot, u32)>,
|
coding_slot_and_index: &mut HashSet<(Slot, u32)>,
|
||||||
) {
|
) {
|
||||||
@ -175,7 +177,7 @@ fn sort_data_coding_into_fec_sets(
|
|||||||
data_slot_and_index.insert(key);
|
data_slot_and_index.insert(key);
|
||||||
let fec_entry = fec_data
|
let fec_entry = fec_data
|
||||||
.entry(shred.common_header.fec_set_index)
|
.entry(shred.common_header.fec_set_index)
|
||||||
.or_insert(vec![]);
|
.or_insert_with(|| vec![]);
|
||||||
fec_entry.push(shred);
|
fec_entry.push(shred);
|
||||||
}
|
}
|
||||||
for shred in coding_shreds {
|
for shred in coding_shreds {
|
||||||
@ -186,16 +188,17 @@ fn sort_data_coding_into_fec_sets(
|
|||||||
coding_slot_and_index.insert(key);
|
coding_slot_and_index.insert(key);
|
||||||
let fec_entry = fec_coding
|
let fec_entry = fec_coding
|
||||||
.entry(shred.common_header.fec_set_index)
|
.entry(shred.common_header.fec_set_index)
|
||||||
.or_insert(vec![]);
|
.or_insert_with(|| vec![]);
|
||||||
fec_entry.push(shred);
|
fec_entry.push(shred);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::assertions_on_constants)]
|
||||||
fn setup_different_sized_fec_blocks(
|
fn setup_different_sized_fec_blocks(
|
||||||
slot: Slot,
|
slot: Slot,
|
||||||
parent_slot: Slot,
|
parent_slot: Slot,
|
||||||
keypair: Arc<Keypair>,
|
keypair: Arc<Keypair>,
|
||||||
) -> (BTreeMap<u32, Vec<Shred>>, BTreeMap<u32, Vec<Shred>>, usize) {
|
) -> (IndexShredsMap, IndexShredsMap, usize) {
|
||||||
let shredder =
|
let shredder =
|
||||||
Shredder::new(slot, parent_slot, 1.0, keypair, 0, 0).expect("Failed in creating shredder");
|
Shredder::new(slot, parent_slot, 1.0, keypair, 0, 0).expect("Failed in creating shredder");
|
||||||
let keypair0 = Keypair::new();
|
let keypair0 = Keypair::new();
|
||||||
|
@ -561,7 +561,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn pubkeys(signers: &[&dyn Signer]) -> Vec<Pubkey> {
|
fn pubkeys(signers: &[&dyn Signer]) -> Vec<Pubkey> {
|
||||||
signers.into_iter().map(|x| x.pubkey()).collect()
|
signers.iter().map(|x| x.pubkey()).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -99,9 +99,9 @@ mod tests {
|
|||||||
slot_history.add(MAX_ENTRIES);
|
slot_history.add(MAX_ENTRIES);
|
||||||
assert_eq!(slot_history.check(0), Check::TooOld);
|
assert_eq!(slot_history.check(0), Check::TooOld);
|
||||||
assert_eq!(slot_history.check(1), Check::NotFound);
|
assert_eq!(slot_history.check(1), Check::NotFound);
|
||||||
assert_eq!(slot_history.check(2), Check::Found);
|
for i in &[2, 20, MAX_ENTRIES] {
|
||||||
assert_eq!(slot_history.check(20), Check::Found);
|
assert_eq!(slot_history.check(*i), Check::Found);
|
||||||
assert_eq!(slot_history.check(MAX_ENTRIES), Check::Found);
|
}
|
||||||
for i in 3..20 {
|
for i in 3..20 {
|
||||||
assert_eq!(slot_history.check(i), Check::NotFound, "i: {}", i);
|
assert_eq!(slot_history.check(i), Check::NotFound, "i: {}", i);
|
||||||
}
|
}
|
||||||
@ -113,12 +113,9 @@ mod tests {
|
|||||||
info!("add max_entries + 3");
|
info!("add max_entries + 3");
|
||||||
let slot = 3 * MAX_ENTRIES + 3;
|
let slot = 3 * MAX_ENTRIES + 3;
|
||||||
slot_history.add(slot);
|
slot_history.add(slot);
|
||||||
assert_eq!(slot_history.check(0), Check::TooOld);
|
for i in &[0, 1, 2, 20, 21, MAX_ENTRIES] {
|
||||||
assert_eq!(slot_history.check(1), Check::TooOld);
|
assert_eq!(slot_history.check(*i), Check::TooOld);
|
||||||
assert_eq!(slot_history.check(2), Check::TooOld);
|
}
|
||||||
assert_eq!(slot_history.check(20), Check::TooOld);
|
|
||||||
assert_eq!(slot_history.check(21), Check::TooOld);
|
|
||||||
assert_eq!(slot_history.check(MAX_ENTRIES), Check::TooOld);
|
|
||||||
let start = slot - MAX_ENTRIES + 1;
|
let start = slot - MAX_ENTRIES + 1;
|
||||||
let end = slot;
|
let end = slot;
|
||||||
for i in start..end {
|
for i in start..end {
|
||||||
|
Reference in New Issue
Block a user