From 66e6110f5afe40260186935e8ad93eda7f02d1d7 Mon Sep 17 00:00:00 2001 From: Sean Young Date: Thu, 30 Sep 2021 07:35:09 +0100 Subject: [PATCH] Fix return data too large test --- programs/bpf/rust/invoke/src/instructions.rs | 1 + programs/bpf/rust/invoke/src/processor.rs | 3 +++ programs/bpf/tests/programs.rs | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/programs/bpf/rust/invoke/src/instructions.rs b/programs/bpf/rust/invoke/src/instructions.rs index cfcb11aceb..8eac54ce58 100644 --- a/programs/bpf/rust/invoke/src/instructions.rs +++ b/programs/bpf/rust/invoke/src/instructions.rs @@ -18,6 +18,7 @@ pub const TEST_NESTED_INVOKE_TOO_DEEP: u8 = 15; pub const TEST_EXECUTABLE_LAMPORTS: u8 = 16; pub const TEST_CALL_PRECOMPILE: u8 = 17; pub const ADD_LAMPORTS: u8 = 18; +pub const TEST_RETURN_DATA_TOO_LARGE: u8 = 19; pub const MINT_INDEX: usize = 0; pub const ARGUMENT_INDEX: usize = 1; diff --git a/programs/bpf/rust/invoke/src/processor.rs b/programs/bpf/rust/invoke/src/processor.rs index 1209351326..408da14432 100644 --- a/programs/bpf/rust/invoke/src/processor.rs +++ b/programs/bpf/rust/invoke/src/processor.rs @@ -644,6 +644,9 @@ fn process_instruction( // make sure the total balance is fine **accounts[0].lamports.borrow_mut() += 1; } + TEST_RETURN_DATA_TOO_LARGE => { + set_return_data(&[1u8; 1028]); + } _ => panic!(), } diff --git a/programs/bpf/tests/programs.rs b/programs/bpf/tests/programs.rs index abaa747078..301b5b7a82 100644 --- a/programs/bpf/tests/programs.rs +++ b/programs/bpf/tests/programs.rs @@ -1084,6 +1084,12 @@ fn test_program_bpf_invoke_sanity() { &[], ); + do_invoke_failure_test_local( + TEST_RETURN_DATA_TOO_LARGE, + TransactionError::InstructionError(0, InstructionError::ProgramFailedToComplete), + &[], + ); + // Check resulting state assert_eq!(43, bank.get_balance(&derived_key1));