genesis_accounts.rs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. use {solana_account::Account, solana_program_test::ProgramTest, solana_pubkey::Pubkey};
  2. #[tokio::test]
  3. async fn genesis_accounts() {
  4. let my_genesis_accounts = [
  5. (
  6. Pubkey::new_unique(),
  7. Account::new(1, 0, &solana_system_interface::program::id()),
  8. ),
  9. (
  10. Pubkey::new_unique(),
  11. Account::new(1, 0, &solana_sdk_ids::config::id()),
  12. ),
  13. (
  14. Pubkey::new_unique(),
  15. Account::new(1, 0, &solana_sdk_ids::feature::id()),
  16. ),
  17. (
  18. Pubkey::new_unique(),
  19. Account::new(1, 0, &solana_stake_interface::program::id()),
  20. ),
  21. ];
  22. let mut program_test = ProgramTest::default();
  23. for (pubkey, account) in my_genesis_accounts.iter() {
  24. program_test.add_genesis_account(*pubkey, account.clone());
  25. }
  26. let context = program_test.start_with_context().await;
  27. // Verify the accounts are present.
  28. for (pubkey, account) in my_genesis_accounts.iter() {
  29. let fetched_account = context
  30. .banks_client
  31. .get_account(*pubkey)
  32. .await
  33. .unwrap()
  34. .unwrap();
  35. assert_eq!(fetched_account, *account);
  36. }
  37. }