refactoring of SortedStorages tests to make other changes easier (#23990)

This commit is contained in:
Jeff Washington (jwash)
2022-03-29 22:06:48 -05:00
committed by GitHub
parent 5a613e9b6e
commit da844d7be5

View File

@ -225,11 +225,19 @@ pub mod tests {
storage_count: 0, storage_count: 0,
} }
} }
pub fn new_for_tests(storages: &[&'a SnapshotStorage], slots: &[Slot]) -> Self {
SortedStorages::new_with_slots(storages.iter().cloned().zip(slots.iter()), None, None)
}
pub fn new_empty_for_tests() -> Self {
SortedStorages::new(&[])
}
} }
#[test] #[test]
fn test_sorted_storages_range_iter() { fn test_sorted_storages_range_iter() {
let storages = SortedStorages::new_with_slots([].iter().zip([].iter()), None, None); let storages = SortedStorages::new_empty_for_tests();
let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| { let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| {
assert!(storages.is_none()); assert!(storages.is_none());
slot slot
@ -253,8 +261,7 @@ pub mod tests {
// only item is slot 3 // only item is slot 3
let s1 = Vec::new(); let s1 = Vec::new();
let storages = let storages = SortedStorages::new_for_tests(&[&s1], &[3]);
SortedStorages::new_with_slots([&s1].into_iter().zip([&3].into_iter()), None, None);
let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| { let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| {
assert!( assert!(
(slot != 3) ^ storages.is_some(), (slot != 3) ^ storages.is_some(),
@ -291,11 +298,7 @@ pub mod tests {
// items in slots 2 and 4 // items in slots 2 and 4
let s2 = Vec::with_capacity(2); let s2 = Vec::with_capacity(2);
let s4 = Vec::with_capacity(4); let s4 = Vec::with_capacity(4);
let storages = SortedStorages::new_with_slots( let storages = SortedStorages::new_for_tests(&[&s2, &s4], &[2, 4]);
[&s2, &s4].into_iter().zip([&2, &4].into_iter()),
None,
None,
);
let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| { let check = |(slot, storages): (Slot, Option<&SnapshotStorage>)| {
assert!( assert!(
(slot != 2 && slot != 4) (slot != 2 && slot != 4)
@ -342,16 +345,12 @@ pub mod tests {
#[test] #[test]
#[should_panic(expected = "slots are not unique")] #[should_panic(expected = "slots are not unique")]
fn test_sorted_storages_duplicate_slots() { fn test_sorted_storages_duplicate_slots() {
SortedStorages::new_with_slots( SortedStorages::new_for_tests(&[&Vec::new(), &Vec::new()], &[0, 0]);
[Vec::new(), Vec::new()].iter().zip([0, 0].iter()),
None,
None,
);
} }
#[test] #[test]
fn test_sorted_storages_none() { fn test_sorted_storages_none() {
let result = SortedStorages::new_with_slots([].iter().zip([].iter()), None, None); let result = SortedStorages::new_empty_for_tests();
assert_eq!(result.range, Range::default()); assert_eq!(result.range, Range::default());
assert_eq!(result.slot_count, 0); assert_eq!(result.slot_count, 0);
assert_eq!(result.storages.len(), 0); assert_eq!(result.storages.len(), 0);
@ -363,8 +362,8 @@ pub mod tests {
let vec = vec![]; let vec = vec![];
let vec_check = vec.clone(); let vec_check = vec.clone();
let slot = 4; let slot = 4;
let vecs = [vec]; let vecs = [&vec];
let result = SortedStorages::new_with_slots(vecs.iter().zip([slot].iter()), None, None); let result = SortedStorages::new_for_tests(&vecs, &[slot]);
assert_eq!( assert_eq!(
result.range, result.range,
Range { Range {
@ -382,8 +381,8 @@ pub mod tests {
let vec = vec![]; let vec = vec![];
let vec_check = vec.clone(); let vec_check = vec.clone();
let slots = [4, 7]; let slots = [4, 7];
let vecs = [vec.clone(), vec]; let vecs = [&vec, &vec];
let result = SortedStorages::new_with_slots(vecs.iter().zip(slots.iter()), None, None); let result = SortedStorages::new_for_tests(&vecs, &slots);
assert_eq!( assert_eq!(
result.range, result.range,
Range { Range {