--amend
This commit is contained in:
committed by
mergify[bot]
parent
4ce48307bb
commit
ad3cb0bc93
@ -302,7 +302,7 @@ struct CachedExecutorsEntry {
|
|||||||
struct CachedExecutors {
|
struct CachedExecutors {
|
||||||
max: usize,
|
max: usize,
|
||||||
current_epoch: Epoch,
|
current_epoch: Epoch,
|
||||||
executors: HashMap<Pubkey, CachedExecutorsEntry>,
|
pub(self) executors: HashMap<Pubkey, CachedExecutorsEntry>,
|
||||||
stats: executor_cache::Stats,
|
stats: executor_cache::Stats,
|
||||||
}
|
}
|
||||||
impl Default for CachedExecutors {
|
impl Default for CachedExecutors {
|
||||||
@ -12914,6 +12914,35 @@ pub(crate) mod tests {
|
|||||||
assert!(cache.get(&key3).is_some());
|
assert!(cache.get(&key3).is_some());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_cached_executors_evicts_smallest() {
|
||||||
|
let key1 = solana_sdk::pubkey::new_rand();
|
||||||
|
let key2 = solana_sdk::pubkey::new_rand();
|
||||||
|
let key3 = solana_sdk::pubkey::new_rand();
|
||||||
|
let executor: Arc<dyn Executor> = Arc::new(TestExecutor {});
|
||||||
|
let mut cache = CachedExecutors::new(2, 0);
|
||||||
|
|
||||||
|
cache.put(&key1, executor.clone());
|
||||||
|
for _ in 0..5 {
|
||||||
|
let _ = cache.get(&key1);
|
||||||
|
}
|
||||||
|
cache.put(&key2, executor.clone());
|
||||||
|
// make key1's use-count for sure greater than key2's
|
||||||
|
let _ = cache.get(&key1);
|
||||||
|
|
||||||
|
let mut entries = cache
|
||||||
|
.executors
|
||||||
|
.iter()
|
||||||
|
.map(|(k, v)| (*k, v.epoch_count.load(Relaxed)))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
entries.sort_by_key(|(_, v)| *v);
|
||||||
|
assert!(entries[0].1 < entries[1].1);
|
||||||
|
|
||||||
|
cache.put(&key3, executor.clone());
|
||||||
|
assert!(cache.get(&entries[0].0).is_none());
|
||||||
|
assert!(cache.get(&entries[1].0).is_some());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_bank_executor_cache() {
|
fn test_bank_executor_cache() {
|
||||||
solana_logger::setup();
|
solana_logger::setup();
|
||||||
|
Reference in New Issue
Block a user