make bank test creation standard (#26519)
This commit is contained in:
parent
d0d3ad7166
commit
f54f528148
|
@ -8085,10 +8085,18 @@ pub(crate) mod tests {
|
|||
assert_eq!(rent.lamports_per_byte_year, 5);
|
||||
}
|
||||
|
||||
fn create_simple_test_bank(lamports: u64) -> Bank {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(lamports);
|
||||
Bank::new_for_tests(&genesis_config)
|
||||
}
|
||||
|
||||
fn create_simple_test_arc_bank(lamports: u64) -> Arc<Bank> {
|
||||
Arc::new(create_simple_test_bank(lamports))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_bank_block_height() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(1);
|
||||
let bank0 = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let bank0 = create_simple_test_arc_bank(1);
|
||||
assert_eq!(bank0.block_height(), 0);
|
||||
let bank1 = Arc::new(new_from_parent(&bank0));
|
||||
assert_eq!(bank1.block_height(), 1);
|
||||
|
@ -8110,8 +8118,7 @@ pub(crate) mod tests {
|
|||
}
|
||||
}
|
||||
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(100_000);
|
||||
|
||||
let initial_epochs = bank.epoch_stake_keys();
|
||||
assert_eq!(initial_epochs, vec![0, 1]);
|
||||
|
@ -8447,8 +8454,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_store_account_and_update_capitalization_missing() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(0);
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(0);
|
||||
let pubkey = solana_sdk::pubkey::new_rand();
|
||||
|
||||
let some_lamports = 400;
|
||||
|
@ -9074,9 +9080,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_rent_eager_across_epoch_without_gap() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(1);
|
||||
|
||||
let mut bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let mut bank = create_simple_test_arc_bank(1);
|
||||
assert_eq!(bank.rent_collection_partitions(), vec![(0, 0, 32)]);
|
||||
|
||||
bank = Arc::new(new_from_parent(&bank));
|
||||
|
@ -9836,11 +9840,9 @@ pub(crate) mod tests {
|
|||
fn test_collect_rent_from_accounts() {
|
||||
solana_logger::setup();
|
||||
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100000);
|
||||
|
||||
let zero_lamport_pubkey = Pubkey::new(&[0; 32]);
|
||||
|
||||
let genesis_bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let genesis_bank = create_simple_test_arc_bank(100000);
|
||||
let first_bank = Arc::new(new_from_parent(&genesis_bank));
|
||||
let first_slot = 1;
|
||||
assert_eq!(first_slot, first_bank.slot());
|
||||
|
@ -10466,8 +10468,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_bank_deposit() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100);
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(100);
|
||||
|
||||
// Test new account
|
||||
let key = Keypair::new();
|
||||
|
@ -10483,8 +10484,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_bank_withdraw() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100);
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(100);
|
||||
|
||||
// Test no account
|
||||
let key = Keypair::new();
|
||||
|
@ -11410,8 +11410,7 @@ pub(crate) mod tests {
|
|||
#[test]
|
||||
#[should_panic(expected = "assertion failed: self.is_frozen()")]
|
||||
fn test_verify_hash_unfrozen() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(2_000);
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(2_000);
|
||||
assert!(bank.verify_hash());
|
||||
}
|
||||
|
||||
|
@ -12437,8 +12436,7 @@ pub(crate) mod tests {
|
|||
#[test]
|
||||
fn test_status_cache_ancestors() {
|
||||
solana_logger::setup();
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(500);
|
||||
let parent = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let parent = create_simple_test_arc_bank(500);
|
||||
let bank1 = Arc::new(new_from_parent(&parent));
|
||||
let mut bank = bank1;
|
||||
for _ in 0..MAX_CACHE_ENTRIES * 2 {
|
||||
|
@ -12566,8 +12564,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_add_instruction_processor_for_existing_unrelated_accounts() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(500);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(500);
|
||||
|
||||
fn mock_ix_processor(
|
||||
_first_instruction_account: usize,
|
||||
|
@ -12641,8 +12638,7 @@ pub(crate) mod tests {
|
|||
#[allow(deprecated)]
|
||||
#[test]
|
||||
fn test_recent_blockhashes_sysvar() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(500);
|
||||
let mut bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let mut bank = create_simple_test_arc_bank(500);
|
||||
for i in 1..5 {
|
||||
let bhq_account = bank.get_account(&sysvar::recent_blockhashes::id()).unwrap();
|
||||
let recent_blockhashes =
|
||||
|
@ -12661,8 +12657,7 @@ pub(crate) mod tests {
|
|||
#[allow(deprecated)]
|
||||
#[test]
|
||||
fn test_blockhash_queue_sysvar_consistency() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
let mut bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let mut bank = create_simple_test_arc_bank(100_000);
|
||||
goto_end_of_slot(Arc::get_mut(&mut bank).unwrap());
|
||||
|
||||
let bhq_account = bank.get_account(&sysvar::recent_blockhashes::id()).unwrap();
|
||||
|
@ -13015,8 +13010,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_assign_from_nonce_account_fail() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000_000);
|
||||
let bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let bank = create_simple_test_arc_bank(100_000_000);
|
||||
let nonce = Keypair::new();
|
||||
let nonce_account = AccountSharedData::new_data(
|
||||
42_424_242,
|
||||
|
@ -13040,8 +13034,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_nonce_must_be_advanceable() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000_000);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(100_000_000);
|
||||
bank.feature_set = Arc::new(FeatureSet::all_enabled());
|
||||
let bank = Arc::new(bank);
|
||||
let nonce_keypair = Keypair::new();
|
||||
|
@ -13716,8 +13709,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_collect_balances() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(500);
|
||||
let parent = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let parent = create_simple_test_arc_bank(500);
|
||||
let bank0 = Arc::new(new_from_parent(&parent));
|
||||
|
||||
let keypair = Keypair::new();
|
||||
|
@ -14178,8 +14170,7 @@ pub(crate) mod tests {
|
|||
fn test_fuzz_instructions() {
|
||||
solana_logger::setup();
|
||||
use rand::{thread_rng, Rng};
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(1_000_000_000);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(1_000_000_000);
|
||||
|
||||
let max_programs = 5;
|
||||
let program_keys: Vec<_> = (0..max_programs)
|
||||
|
@ -14603,12 +14594,10 @@ pub(crate) mod tests {
|
|||
#[test]
|
||||
fn test_process_stale_slot_with_budget() {
|
||||
solana_logger::setup();
|
||||
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(1_000_000_000);
|
||||
let pubkey1 = solana_sdk::pubkey::new_rand();
|
||||
let pubkey2 = solana_sdk::pubkey::new_rand();
|
||||
|
||||
let mut bank = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let mut bank = create_simple_test_arc_bank(1_000_000_000);
|
||||
bank.restore_old_behavior_for_fragile_tests();
|
||||
assert_eq!(bank.process_stale_slot_with_budget(0, 0), 0);
|
||||
assert_eq!(bank.process_stale_slot_with_budget(133, 0), 133);
|
||||
|
@ -14650,8 +14639,6 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_add_builtin_no_overwrite() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
|
||||
#[allow(clippy::unnecessary_wraps)]
|
||||
fn mock_ix_processor(
|
||||
_first_instruction_account: usize,
|
||||
|
@ -14664,7 +14651,7 @@ pub(crate) mod tests {
|
|||
let program_id = solana_sdk::pubkey::new_rand();
|
||||
|
||||
let mut bank = Arc::new(Bank::new_from_parent(
|
||||
&Arc::new(Bank::new_for_tests(&genesis_config)),
|
||||
&create_simple_test_arc_bank(100_000),
|
||||
&Pubkey::default(),
|
||||
slot,
|
||||
));
|
||||
|
@ -14688,8 +14675,6 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_add_builtin_loader_no_overwrite() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
|
||||
#[allow(clippy::unnecessary_wraps)]
|
||||
fn mock_ix_processor(
|
||||
_first_instruction_account: usize,
|
||||
|
@ -14702,7 +14687,7 @@ pub(crate) mod tests {
|
|||
let loader_id = solana_sdk::pubkey::new_rand();
|
||||
|
||||
let mut bank = Arc::new(Bank::new_from_parent(
|
||||
&Arc::new(Bank::new_for_tests(&genesis_config)),
|
||||
&create_simple_test_arc_bank(100_000),
|
||||
&Pubkey::default(),
|
||||
slot,
|
||||
));
|
||||
|
@ -14824,13 +14809,11 @@ pub(crate) mod tests {
|
|||
Maybe, inconsistent program activation is detected on snapshot restore?"
|
||||
)]
|
||||
fn test_add_builtin_account_after_frozen() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
|
||||
let slot = 123;
|
||||
let program_id = Pubkey::from_str("CiXgo2KHKSDmDnV1F6B69eWFgNAPiSBjjYvfB4cvRNre").unwrap();
|
||||
|
||||
let bank = Bank::new_from_parent(
|
||||
&Arc::new(Bank::new_for_tests(&genesis_config)),
|
||||
&create_simple_test_arc_bank(100_000),
|
||||
&Pubkey::default(),
|
||||
slot,
|
||||
);
|
||||
|
@ -14845,13 +14828,11 @@ pub(crate) mod tests {
|
|||
CiXgo2KHKSDmDnV1F6B69eWFgNAPiSBjjYvfB4cvRNre)."
|
||||
)]
|
||||
fn test_add_builtin_account_replace_none() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
|
||||
let slot = 123;
|
||||
let program_id = Pubkey::from_str("CiXgo2KHKSDmDnV1F6B69eWFgNAPiSBjjYvfB4cvRNre").unwrap();
|
||||
|
||||
let bank = Bank::new_from_parent(
|
||||
&Arc::new(Bank::new_for_tests(&genesis_config)),
|
||||
&create_simple_test_arc_bank(100_000),
|
||||
&Pubkey::default(),
|
||||
slot,
|
||||
);
|
||||
|
@ -14936,13 +14917,11 @@ pub(crate) mod tests {
|
|||
Maybe, inconsistent program activation is detected on snapshot restore?"
|
||||
)]
|
||||
fn test_add_precompiled_account_after_frozen() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
|
||||
let slot = 123;
|
||||
let program_id = Pubkey::from_str("CiXgo2KHKSDmDnV1F6B69eWFgNAPiSBjjYvfB4cvRNre").unwrap();
|
||||
|
||||
let bank = Bank::new_from_parent(
|
||||
&Arc::new(Bank::new_for_tests(&genesis_config)),
|
||||
&create_simple_test_arc_bank(100_000),
|
||||
&Pubkey::default(),
|
||||
slot,
|
||||
);
|
||||
|
@ -15453,8 +15432,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_compute_active_feature_set() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100_000);
|
||||
let bank0 = Arc::new(Bank::new_for_tests(&genesis_config));
|
||||
let bank0 = create_simple_test_arc_bank(100_000);
|
||||
let mut bank = Bank::new_from_parent(&bank0, &Pubkey::default(), 1);
|
||||
|
||||
let test_feature = "TestFeature11111111111111111111111111111111"
|
||||
|
@ -15508,8 +15486,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_program_replacement() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(0);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(0);
|
||||
|
||||
// Setup original program account
|
||||
let old_address = Pubkey::new_unique();
|
||||
|
@ -15572,8 +15549,7 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_adjust_sysvar_balance_for_rent() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(0);
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(0);
|
||||
let mut smaller_sample_sysvar = AccountSharedData::new(1, 0, &Pubkey::default());
|
||||
assert_eq!(smaller_sample_sysvar.lamports(), 1);
|
||||
bank.adjust_sysvar_balance_for_rent(&mut smaller_sample_sysvar);
|
||||
|
@ -17887,8 +17863,7 @@ pub(crate) mod tests {
|
|||
#[test]
|
||||
fn test_accounts_data_size_with_bad_transaction() {
|
||||
const ACCOUNT_SIZE: u64 = MAX_PERMITTED_DATA_LENGTH;
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(1_000_000_000_000);
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(1_000_000_000_000);
|
||||
bank.activate_feature(&feature_set::cap_accounts_data_len::id());
|
||||
let transaction = system_transaction::create_account(
|
||||
&Keypair::new(),
|
||||
|
@ -18628,11 +18603,9 @@ pub(crate) mod tests {
|
|||
|
||||
#[test]
|
||||
fn test_update_accounts_data_size() {
|
||||
let (genesis_config, _mint_keypair) = create_genesis_config(100);
|
||||
|
||||
// Test: Subtraction saturates at 0
|
||||
{
|
||||
let bank = Bank::new_for_tests(&genesis_config);
|
||||
let bank = create_simple_test_bank(100);
|
||||
let initial_data_size = bank.load_accounts_data_size() as i64;
|
||||
let data_size = 567;
|
||||
bank.accounts_data_size_delta_on_chain
|
||||
|
@ -18645,7 +18618,7 @@ pub(crate) mod tests {
|
|||
|
||||
// Test: Addition saturates at u64::MAX
|
||||
{
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(100);
|
||||
let data_size_remaining = 567;
|
||||
bank.accounts_data_size_initial = u64::MAX - data_size_remaining;
|
||||
bank.accounts_data_size_delta_off_chain
|
||||
|
@ -18657,7 +18630,7 @@ pub(crate) mod tests {
|
|||
{
|
||||
// Set the accounts data size to be in the middle, then perform a bunch of small
|
||||
// updates, checking the results after each one.
|
||||
let mut bank = Bank::new_for_tests(&genesis_config);
|
||||
let mut bank = create_simple_test_bank(100);
|
||||
bank.accounts_data_size_initial = u32::MAX as u64;
|
||||
let mut rng = rand::thread_rng();
|
||||
for _ in 0..100 {
|
||||
|
|
Loading…
Reference in New Issue