Refactor: move compute budget runtime logic into solana-program-runtime (#22543)

This commit is contained in:
Justin Starry
2022-01-17 20:48:00 +08:00
committed by GitHub
parent 5e5cdf397c
commit cc76a73c49
8 changed files with 316 additions and 292 deletions

View File

@ -17,7 +17,10 @@ use solana_bpf_loader_program::{
use solana_bpf_rust_invoke::instructions::*;
use solana_bpf_rust_realloc::instructions::*;
use solana_bpf_rust_realloc_invoke::instructions::*;
use solana_program_runtime::{invoke_context::with_mock_invoke_context, timings::ExecuteTimings};
use solana_program_runtime::{
compute_budget::ComputeBudget, invoke_context::with_mock_invoke_context,
timings::ExecuteTimings,
};
use solana_rbpf::{
elf::Executable,
static_analysis::Analysis,
@ -41,7 +44,7 @@ use solana_sdk::{
bpf_loader, bpf_loader_deprecated, bpf_loader_upgradeable,
client::SyncClient,
clock::MAX_PROCESSING_AGE,
compute_budget::{ComputeBudget, ComputeBudgetInstruction},
compute_budget::ComputeBudgetInstruction,
entrypoint::{MAX_PERMITTED_DATA_INCREASE, SUCCESS},
instruction::{AccountMeta, CompiledInstruction, Instruction, InstructionError},
loader_instruction,
@ -226,13 +229,16 @@ fn run_program(name: &str) -> u64 {
let mut instruction_count = 0;
let mut tracer = None;
for i in 0..2 {
invoke_context.transaction_context.set_return_data(
*invoke_context
.transaction_context
.get_program_key()
.unwrap(),
Vec::new(),
).unwrap();
invoke_context
.transaction_context
.set_return_data(
*invoke_context
.transaction_context
.get_program_key()
.unwrap(),
Vec::new(),
)
.unwrap();
let mut parameter_bytes = parameter_bytes.clone();
{
let mut vm = create_vm(