Skip to content

Commit 203cc9e

Browse files
authored
solana: Add more Cargo tests (wormhole-foundation#638)
This PR is based on wormhole-foundation#219. This PR also adds missing Cargo tests mentioned in wormhole-foundation#320.
1 parent 9d2740f commit 203cc9e

File tree

16 files changed

+1294
-477
lines changed

16 files changed

+1294
-477
lines changed

solana/programs/example-native-token-transfers/tests/admin.rs

Lines changed: 21 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ use solana_program_test::*;
1010
use solana_sdk::{instruction::InstructionError, signer::Signer, transaction::TransactionError};
1111

1212
use crate::{
13-
common::{
14-
query::GetAccountDataAnchor,
15-
setup::{setup, TestData},
16-
submit::Submittable,
17-
},
13+
common::{query::GetAccountDataAnchor, setup::setup, submit::Submittable},
14+
sdk::accounts::{good_ntt, NTTAccounts},
1815
sdk::instructions::admin::{
1916
deregister_transceiver, register_transceiver, set_threshold, DeregisterTransceiver,
2017
RegisterTransceiver, SetThreshold,
@@ -24,23 +21,18 @@ use crate::{
2421
pub mod common;
2522
pub mod sdk;
2623

27-
async fn assert_threshold(
28-
ctx: &mut ProgramTestContext,
29-
test_data: &TestData,
30-
expected_threshold: u8,
31-
) {
32-
let config_account: Config = ctx.get_account_data_anchor(test_data.ntt.config()).await;
24+
async fn assert_threshold(ctx: &mut ProgramTestContext, expected_threshold: u8) {
25+
let config_account: Config = ctx.get_account_data_anchor(good_ntt.config()).await;
3326
assert_eq!(config_account.threshold, expected_threshold);
3427
}
3528

3629
async fn assert_transceiver_id(
3730
ctx: &mut ProgramTestContext,
38-
test_data: &TestData,
3931
transceiver: &Pubkey,
4032
expected_id: u8,
4133
) {
4234
let registered_transceiver_account: RegisteredTransceiver = ctx
43-
.get_account_data_anchor(test_data.ntt.registered_transceiver(transceiver))
35+
.get_account_data_anchor(good_ntt.registered_transceiver(transceiver))
4436
.await;
4537
assert_eq!(
4638
registered_transceiver_account.transceiver_address,
@@ -55,7 +47,7 @@ async fn test_invalid_transceiver() {
5547

5648
// try registering system program
5749
let err = register_transceiver(
58-
&test_data.ntt,
50+
&good_ntt,
5951
RegisterTransceiver {
6052
payer: ctx.payer.pubkey(),
6153
owner: test_data.program_owner.pubkey(),
@@ -89,7 +81,7 @@ async fn test_reregister_all_transceivers() {
8981
// register dummy transceivers
9082
for (idx, transceiver) in dummy_transceivers.iter().enumerate() {
9183
register_transceiver(
92-
&test_data.ntt,
84+
&good_ntt,
9385
RegisterTransceiver {
9486
payer: ctx.payer.pubkey(),
9587
owner: test_data.program_owner.pubkey(),
@@ -99,12 +91,12 @@ async fn test_reregister_all_transceivers() {
9991
.submit_with_signers(&[&test_data.program_owner], &mut ctx)
10092
.await
10193
.unwrap();
102-
assert_transceiver_id(&mut ctx, &test_data, transceiver, idx as u8 + 1).await;
94+
assert_transceiver_id(&mut ctx, transceiver, idx as u8 + 1).await;
10395
}
10496

10597
// set threshold = 1 (for baked-in transceiver) + num_dummy_transceivers
10698
set_threshold(
107-
&test_data.ntt,
99+
&good_ntt,
108100
SetThreshold {
109101
owner: test_data.program_owner.pubkey(),
110102
},
@@ -117,7 +109,7 @@ async fn test_reregister_all_transceivers() {
117109
// deregister dummy transceivers
118110
for (idx, transceiver) in dummy_transceivers.iter().enumerate() {
119111
deregister_transceiver(
120-
&test_data.ntt,
112+
&good_ntt,
121113
DeregisterTransceiver {
122114
owner: test_data.program_owner.pubkey(),
123115
transceiver: *transceiver,
@@ -126,12 +118,12 @@ async fn test_reregister_all_transceivers() {
126118
.submit_with_signers(&[&test_data.program_owner], &mut ctx)
127119
.await
128120
.unwrap();
129-
assert_threshold(&mut ctx, &test_data, num_dummy_transceivers - idx as u8).await;
121+
assert_threshold(&mut ctx, num_dummy_transceivers - idx as u8).await;
130122
}
131123

132124
// deregister baked-in transceiver
133125
deregister_transceiver(
134-
&test_data.ntt,
126+
&good_ntt,
135127
DeregisterTransceiver {
136128
owner: test_data.program_owner.pubkey(),
137129
transceiver: example_native_token_transfers::ID,
@@ -140,12 +132,12 @@ async fn test_reregister_all_transceivers() {
140132
.submit_with_signers(&[&test_data.program_owner], &mut ctx)
141133
.await
142134
.unwrap();
143-
assert_threshold(&mut ctx, &test_data, 1).await;
135+
assert_threshold(&mut ctx, 1).await;
144136

145137
// reregister dummy transceiver
146138
for (idx, transceiver) in dummy_transceivers.iter().enumerate() {
147139
register_transceiver(
148-
&test_data.ntt,
140+
&good_ntt,
149141
RegisterTransceiver {
150142
payer: ctx.payer.pubkey(),
151143
owner: test_data.program_owner.pubkey(),
@@ -155,13 +147,13 @@ async fn test_reregister_all_transceivers() {
155147
.submit_with_signers(&[&test_data.program_owner], &mut ctx)
156148
.await
157149
.unwrap();
158-
assert_transceiver_id(&mut ctx, &test_data, transceiver, idx as u8 + 1).await;
159-
assert_threshold(&mut ctx, &test_data, 1).await;
150+
assert_transceiver_id(&mut ctx, transceiver, idx as u8 + 1).await;
151+
assert_threshold(&mut ctx, 1).await;
160152
}
161153

162154
// reregister baked-in transceiver
163155
register_transceiver(
164-
&test_data.ntt,
156+
&good_ntt,
165157
RegisterTransceiver {
166158
payer: ctx.payer.pubkey(),
167159
owner: test_data.program_owner.pubkey(),
@@ -171,16 +163,16 @@ async fn test_reregister_all_transceivers() {
171163
.submit_with_signers(&[&test_data.program_owner], &mut ctx)
172164
.await
173165
.unwrap();
174-
assert_transceiver_id(&mut ctx, &test_data, &example_native_token_transfers::ID, 0).await;
175-
assert_threshold(&mut ctx, &test_data, 1).await;
166+
assert_transceiver_id(&mut ctx, &example_native_token_transfers::ID, 0).await;
167+
assert_threshold(&mut ctx, 1).await;
176168
}
177169

178170
#[tokio::test]
179171
async fn test_zero_threshold() {
180172
let (mut ctx, test_data) = setup(Mode::Locking).await;
181173

182174
let err = set_threshold(
183-
&test_data.ntt,
175+
&good_ntt,
184176
SetThreshold {
185177
owner: test_data.program_owner.pubkey(),
186178
},
@@ -203,7 +195,7 @@ async fn test_threshold_too_high() {
203195
let (mut ctx, test_data) = setup(Mode::Burning).await;
204196

205197
let err = set_threshold(
206-
&test_data.ntt,
198+
&good_ntt,
207199
SetThreshold {
208200
owner: test_data.program_owner.pubkey(),
209201
},

solana/programs/example-native-token-transfers/tests/broadcast.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use wormhole_anchor_sdk::wormhole::PostedVaa;
1313

1414
use crate::common::query::GetAccountDataAnchor;
1515
use crate::common::setup::{setup, OTHER_TRANSCEIVER};
16+
use crate::sdk::accounts::{good_ntt, NTTAccounts};
1617
use crate::sdk::transceivers::wormhole::instructions::broadcast_id::{broadcast_id, BroadcastId};
1718
use crate::{
1819
common::submit::Submittable,
@@ -24,12 +25,12 @@ pub mod sdk;
2425

2526
#[tokio::test]
2627
async fn test_broadcast_peer() {
27-
let (mut ctx, test_data) = setup(Mode::Locking).await;
28+
let (mut ctx, _test_data) = setup(Mode::Locking).await;
2829

2930
let wh_message = Keypair::new();
3031

3132
broadcast_peer(
32-
&test_data.ntt,
33+
&good_ntt,
3334
BroadcastPeer {
3435
payer: ctx.payer.pubkey(),
3536
wormhole_message: wh_message.pubkey(),
@@ -60,7 +61,7 @@ async fn test_broadcast_id() {
6061
let wh_message = Keypair::new();
6162

6263
broadcast_id(
63-
&test_data.ntt,
64+
&good_ntt,
6465
BroadcastId {
6566
payer: ctx.payer.pubkey(),
6667
wormhole_message: wh_message.pubkey(),
@@ -78,7 +79,7 @@ async fn test_broadcast_id() {
7879
assert_eq!(
7980
*msg.data(),
8081
WormholeTransceiverInfo {
81-
manager_address: test_data.ntt.program.to_bytes(),
82+
manager_address: good_ntt.program().to_bytes(),
8283
manager_mode: Mode::Locking,
8384
token_address: test_data.mint.to_bytes(),
8485
token_decimals: 9,

0 commit comments

Comments
 (0)