Fix program account rent exemption (#14176)

This commit is contained in:
Jack May
2020-12-17 01:02:31 -08:00
committed by GitHub
parent dc0f5adc36
commit 593ad80954
4 changed files with 103 additions and 10 deletions

View File

@ -8,9 +8,10 @@ use solana_program::{
entrypoint!(process_instruction);
fn process_instruction(
_program_id: &Pubkey,
_accounts: &[AccountInfo],
accounts: &[AccountInfo],
_instruction_data: &[u8],
) -> ProgramResult {
msg!("Upgradeable program");
assert_eq!(accounts.len(), 2);
Err(42.into())
}

View File

@ -8,9 +8,10 @@ use solana_program::{
entrypoint!(process_instruction);
fn process_instruction(
_program_id: &Pubkey,
_accounts: &[AccountInfo],
accounts: &[AccountInfo],
_instruction_data: &[u8],
) -> ProgramResult {
msg!("Upgraded program");
assert_eq!(accounts.len(), 2);
Err(43.into())
}

View File

@ -1483,7 +1483,14 @@ fn test_program_bpf_upgrade() {
// call upgrade program
nonce += 1;
let instruction = Instruction::new(program_id, &[nonce], vec![]);
let instruction = Instruction::new(
program_id,
&[nonce],
vec![
AccountMeta::new(clock::id(), false),
AccountMeta::new(fees::id(), false),
],
);
let result = bank_client.send_and_confirm_instruction(&mint_keypair, instruction);
assert_eq!(
result.unwrap_err().unwrap(),
@ -1501,7 +1508,14 @@ fn test_program_bpf_upgrade() {
// call upgraded program
nonce += 1;
let instruction = Instruction::new(program_id, &[nonce], vec![]);
let instruction = Instruction::new(
program_id,
&[nonce],
vec![
AccountMeta::new(clock::id(), false),
AccountMeta::new(fees::id(), false),
],
);
let result = bank_client.send_and_confirm_instruction(&mint_keypair, instruction);
assert_eq!(
result.unwrap_err().unwrap(),
@ -1529,7 +1543,14 @@ fn test_program_bpf_upgrade() {
// call original program
nonce += 1;
let instruction = Instruction::new(program_id, &[nonce], vec![]);
let instruction = Instruction::new(
program_id,
&[nonce],
vec![
AccountMeta::new(clock::id(), false),
AccountMeta::new(fees::id(), false),
],
);
let result = bank_client.send_and_confirm_instruction(&mint_keypair, instruction);
assert_eq!(
result.unwrap_err().unwrap(),