test.rs 923 B

12345678910111213141516171819202122232425262728293031323334
  1. use litesvm::LiteSVM;
  2. use solana_instruction::{AccountMeta, Instruction};
  3. use solana_keypair::{Keypair, Signer};
  4. use solana_native_token::LAMPORTS_PER_SOL;
  5. use solana_pubkey::Pubkey;
  6. use solana_transaction::Transaction;
  7. #[test]
  8. fn test_hello_solana() {
  9. let program_id = Pubkey::new_unique();
  10. let program_bytes = include_bytes!("../../tests/fixtures/hello_solana_program.so");
  11. let mut svm = LiteSVM::new();
  12. svm.add_program(program_id, program_bytes).unwrap();
  13. let payer = Keypair::new();
  14. svm.airdrop(&payer.pubkey(), LAMPORTS_PER_SOL * 10).unwrap();
  15. let ix = Instruction {
  16. program_id,
  17. accounts: vec![AccountMeta::new(payer.pubkey(), true)],
  18. data: vec![0],
  19. };
  20. let tx = Transaction::new_signed_with_payer(
  21. &[ix],
  22. Some(&payer.pubkey()),
  23. &[&payer],
  24. svm.latest_blockhash(),
  25. );
  26. assert!(svm.send_transaction(tx).is_ok());
  27. }