program-test: Add large bootstrap stake for realistic warmups (#16739)

This commit is contained in:
Jon Cinque
2021-04-22 16:44:54 +02:00
committed by GitHub
parent 517a30e83d
commit f4214637a9
4 changed files with 38 additions and 3 deletions

View File

@ -1,5 +1,7 @@
#![allow(clippy::integer_arithmetic)]
use {
assert_matches::assert_matches,
bincode::deserialize,
solana_program_test::{processor, ProgramTest, ProgramTestError},
solana_sdk::{
account_info::{next_account_info, AccountInfo},
@ -11,12 +13,16 @@ use {
rent::Rent,
signature::{Keypair, Signer},
system_instruction, system_program,
sysvar::{clock, Sysvar},
sysvar::{
clock,
stake_history::{self, StakeHistory},
Sysvar,
},
transaction::{Transaction, TransactionError},
},
solana_stake_program::{
stake_instruction,
stake_state::{Authorized, Lockup},
stake_state::{Authorized, Lockup, StakeState},
},
solana_vote_program::{
vote_instruction,
@ -248,4 +254,30 @@ async fn stake_rewards_from_warp() {
.expect("account exists")
.unwrap();
assert!(account.lamports > stake_lamports);
// check that stake is fully active
let stake_history_account = context
.banks_client
.get_account(stake_history::id())
.await
.expect("account exists")
.unwrap();
let clock_account = context
.banks_client
.get_account(clock::id())
.await
.expect("account exists")
.unwrap();
let stake_state: StakeState = deserialize(&account.data).unwrap();
let stake_history: StakeHistory = deserialize(&stake_history_account.data).unwrap();
let clock: Clock = deserialize(&clock_account.data).unwrap();
let stake = stake_state.stake().unwrap();
assert_matches!(
stake
.delegation
.stake_activating_and_deactivating(clock.epoch, Some(&stake_history), true,),
(_, 0, 0)
);
}