Skip to content
This repository has been archived by the owner on Jan 22, 2025. It is now read-only.

Commit

Permalink
Refactor - Simplify loader utils (#29699)
Browse files Browse the repository at this point in the history
* Moves all the common code of tests and benches into loader utils.

* Removes write_sbf_program().

* Removes ignored test: test_program_sbf_test_use_latest_executor2().

(cherry picked from commit ab97d37)

# Conflicts:
#	programs/bpf/benches/bpf_loader.rs
#	programs/bpf/tests/programs.rs
  • Loading branch information
Lichtso authored and mergify[bot] committed Jan 18, 2023
1 parent f88daec commit a0481cb
Show file tree
Hide file tree
Showing 3 changed files with 386 additions and 76 deletions.
22 changes: 14 additions & 8 deletions programs/bpf/benches/bpf_loader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,21 @@ use {
bank::Bank,
bank_client::BankClient,
genesis_utils::{create_genesis_config, GenesisConfigInfo},
loader_utils::load_program,
loader_utils::{create_deprecated_program, load_program_from_file},
},
solana_sdk::{
bpf_loader,
client::SyncClient,
entrypoint::SUCCESS,
instruction::{AccountMeta, Instruction},
message::Message,
pubkey::Pubkey,
signature::{Keypair, Signer},
signature::Signer,
},
std::{env, fs::File, io::Read, mem, path::PathBuf, sync::Arc},
std::{mem, sync::Arc},
test::Bencher,
};

<<<<<<< HEAD:programs/bpf/benches/bpf_loader.rs
/// BPF program file extension
const PLATFORM_FILE_EXTENSION_BPF: &str = "so";
/// Create a BPF program file name
Expand Down Expand Up @@ -72,12 +72,14 @@ fn load_bpf_program(
load_program(bank_client, payer_keypair, loader_id, elf)
}

=======
>>>>>>> ab97d37e3 (Refactor - Simplify loader utils (#29699)):programs/sbf/benches/bpf_loader.rs
const ARMSTRONG_LIMIT: u64 = 500;
const ARMSTRONG_EXPECTED: u64 = 5;

#[bench]
fn bench_program_create_executable(bencher: &mut Bencher) {
let elf = load_elf("bench_alu").unwrap();
let elf = load_program_from_file("bench_alu");

bencher.iter(|| {
let _ = Executable::<BpfError, ThisInstructionMeter>::from_elf(
Expand All @@ -98,7 +100,7 @@ fn bench_program_alu(bencher: &mut Bencher) {
.write_u64::<LittleEndian>(ARMSTRONG_LIMIT)
.unwrap();
inner_iter.write_u64::<LittleEndian>(0).unwrap();
let elf = load_elf("bench_alu").unwrap();
let elf = load_program_from_file("bench_alu");
let loader_id = bpf_loader::id();
with_mock_invoke_context(loader_id, 10000001, |invoke_context| {
invoke_context
Expand Down Expand Up @@ -191,7 +193,11 @@ fn bench_program_execute_noop(bencher: &mut Bencher) {
let bank_client = BankClient::new_shared(&bank);

let invoke_program_id =
<<<<<<< HEAD:programs/bpf/benches/bpf_loader.rs
load_bpf_program(&bank_client, &bpf_loader::id(), &mint_keypair, "noop");
=======
create_deprecated_program(&bank_client, &bpf_loader::id(), &mint_keypair, "noop");
>>>>>>> ab97d37e3 (Refactor - Simplify loader utils (#29699)):programs/sbf/benches/bpf_loader.rs

let mint_pubkey = mint_keypair.pubkey();
let account_metas = vec![AccountMeta::new(mint_pubkey, true)];
Expand All @@ -214,7 +220,7 @@ fn bench_program_execute_noop(bencher: &mut Bencher) {

#[bench]
fn bench_create_vm(bencher: &mut Bencher) {
let elf = load_elf("noop").unwrap();
let elf = load_program_from_file("noop");
let loader_id = bpf_loader::id();
with_mock_invoke_context(loader_id, 10000001, |invoke_context| {
const BUDGET: u64 = 200_000;
Expand Down Expand Up @@ -262,7 +268,7 @@ fn bench_create_vm(bencher: &mut Bencher) {

#[bench]
fn bench_instruction_count_tuner(_bencher: &mut Bencher) {
let elf = load_elf("tuner").unwrap();
let elf = load_program_from_file("tuner");
let loader_id = bpf_loader::id();
with_mock_invoke_context(loader_id, 10000001, |invoke_context| {
const BUDGET: u64 = 200_000;
Expand Down
Loading

0 comments on commit a0481cb

Please sign in to comment.