Expand CPI returning error test (#13672)
This commit is contained in:
@ -133,15 +133,25 @@ fn process_instruction(
|
|||||||
|
|
||||||
info!("Test return error");
|
info!("Test return error");
|
||||||
{
|
{
|
||||||
|
assert_eq!(
|
||||||
|
10,
|
||||||
|
**accounts[INVOKED_ARGUMENT_INDEX].try_borrow_lamports()?
|
||||||
|
);
|
||||||
|
assert_eq!(0, accounts[INVOKED_ARGUMENT_INDEX].try_borrow_data()?[0]);
|
||||||
let instruction = create_instruction(
|
let instruction = create_instruction(
|
||||||
*accounts[INVOKED_PROGRAM_INDEX].key,
|
*accounts[INVOKED_PROGRAM_INDEX].key,
|
||||||
&[(accounts[ARGUMENT_INDEX].key, true, true)],
|
&[(accounts[INVOKED_ARGUMENT_INDEX].key, false, true)],
|
||||||
vec![TEST_RETURN_ERROR],
|
vec![TEST_RETURN_ERROR],
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
invoke(&instruction, accounts),
|
invoke(&instruction, accounts),
|
||||||
Err(ProgramError::Custom(42))
|
Err(ProgramError::Custom(42))
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
10,
|
||||||
|
**accounts[INVOKED_ARGUMENT_INDEX].try_borrow_lamports()?
|
||||||
|
);
|
||||||
|
assert_eq!(0, accounts[INVOKED_ARGUMENT_INDEX].try_borrow_data()?[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Test refcell usage");
|
info!("Test refcell usage");
|
||||||
|
@ -107,6 +107,14 @@ fn process_instruction(
|
|||||||
}
|
}
|
||||||
TEST_RETURN_ERROR => {
|
TEST_RETURN_ERROR => {
|
||||||
info!("return error");
|
info!("return error");
|
||||||
|
const ARGUMENT_INDEX: usize = 0;
|
||||||
|
|
||||||
|
// modify lamports that should be dropped
|
||||||
|
assert_eq!(10, **accounts[ARGUMENT_INDEX].try_borrow_lamports()?);
|
||||||
|
**accounts[ARGUMENT_INDEX].try_borrow_mut_lamports()? += 1;
|
||||||
|
// modify data that should be dropped
|
||||||
|
assert_eq!(0, accounts[ARGUMENT_INDEX].try_borrow_mut_data()?[0]);
|
||||||
|
accounts[ARGUMENT_INDEX].try_borrow_mut_data()?[0] = 1;
|
||||||
return Err(ProgramError::Custom(42));
|
return Err(ProgramError::Custom(42));
|
||||||
}
|
}
|
||||||
TEST_DERIVED_SIGNERS => {
|
TEST_DERIVED_SIGNERS => {
|
||||||
|
Reference in New Issue
Block a user