solana/program-test/tests/bpf.rs

42 lines
1.1 KiB
Rust

use {
solana_program_test::ProgramTest,
solana_sdk::{
bpf_loader, instruction::Instruction, pubkey::Pubkey, signature::Signer,
transaction::Transaction,
},
};
#[tokio::test]
async fn test_add_bpf_program() {
let program_id = Pubkey::new_unique();
let mut program_test = ProgramTest::default();
program_test.prefer_bpf(true);
program_test.add_program("noop_program", program_id, None);
let mut context = program_test.start_with_context().await;
// Assert the program is a BPF Loader 2 program.
let program_account = context
.banks_client
.get_account(program_id)
.await
.unwrap()
.unwrap();
assert_eq!(program_account.owner, bpf_loader::id());
// Invoke the program.
let instruction = Instruction::new_with_bytes(program_id, &[], Vec::new());
let transaction = Transaction::new_signed_with_payer(
&[instruction],
Some(&context.payer.pubkey()),
&[&context.payer],
context.last_blockhash,
);
context
.banks_client
.process_transaction(transaction)
.await
.unwrap();
}