Skip to content

Commit dc4b8f6

Browse files
committed
use Checks
1 parent fc21f75 commit dc4b8f6

File tree

1 file changed

+67
-12
lines changed

1 file changed

+67
-12
lines changed

program/tests/deactivate.rs

Lines changed: 67 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -144,30 +144,37 @@ fn test_deactivate_delinquent() {
144144
let vote_address = Pubkey::new_unique();
145145
let stake_address = Pubkey::new_unique();
146146

147+
let rent_exempt_reserve = Rent::default().minimum_balance(StakeStateV2::size_of());
148+
let stake_lamports = rent_exempt_reserve + 1;
149+
147150
let initial_stake_state = StakeStateV2::Stake(
148-
Meta::default(),
151+
Meta {
152+
rent_exempt_reserve,
153+
..Meta::default()
154+
},
149155
new_stake(1, &vote_address, &VoteStateV4::default(), 1),
150156
StakeFlags::empty(),
151157
);
152158

153159
let stake_account = AccountSharedData::new_data_with_space(
154-
1,
160+
stake_lamports,
155161
&initial_stake_state,
156162
StakeStateV2::size_of(),
157163
&id(),
158164
)
159165
.unwrap();
160166

167+
let vote_rent_exempt = Rent::default().minimum_balance(VoteStateV4::size_of());
161168
let mut vote_account = AccountSharedData::new_data_with_space(
162-
1,
169+
vote_rent_exempt,
163170
&VoteStateVersions::new_v4(VoteStateV4::default()),
164171
VoteStateV4::size_of(),
165172
&solana_sdk_ids::vote::id(),
166173
)
167174
.unwrap();
168175

169176
let mut reference_vote_account = AccountSharedData::new_data_with_space(
170-
1,
177+
vote_rent_exempt,
171178
&VoteStateVersions::new_v4(VoteStateV4::default()),
172179
VoteStateV4::size_of(),
173180
&solana_sdk_ids::vote::id(),
@@ -246,7 +253,15 @@ fn test_deactivate_delinquent() {
246253
vote: (&vote_address, &vote_account),
247254
reference_vote: (&reference_vote_address, &reference_vote_account),
248255
})
249-
.checks(&[Check::success()])
256+
.checks(&[
257+
Check::success(),
258+
Check::all_rent_exempt(),
259+
Check::account(&stake_address)
260+
.lamports(stake_lamports)
261+
.owner(&id())
262+
.space(StakeStateV2::size_of())
263+
.build(),
264+
])
250265
.test_missing_signers(true)
251266
.execute();
252267

@@ -271,7 +286,15 @@ fn test_deactivate_delinquent() {
271286
vote: (&vote_address, &vote_account),
272287
reference_vote: (&reference_vote_address, &reference_vote_account),
273288
})
274-
.checks(&[Check::success()])
289+
.checks(&[
290+
Check::success(),
291+
Check::all_rent_exempt(),
292+
Check::account(&stake_address)
293+
.lamports(stake_lamports)
294+
.owner(&id())
295+
.space(StakeStateV2::size_of())
296+
.build(),
297+
])
275298
.test_missing_signers(true)
276299
.execute();
277300

@@ -317,7 +340,15 @@ fn test_deactivate_delinquent() {
317340
vote: (&vote_address, &vote_account),
318341
reference_vote: (&reference_vote_address, &reference_vote_account),
319342
})
320-
.checks(&[Check::success()])
343+
.checks(&[
344+
Check::success(),
345+
Check::all_rent_exempt(),
346+
Check::account(&stake_address)
347+
.lamports(stake_lamports)
348+
.owner(&id())
349+
.space(StakeStateV2::size_of())
350+
.build(),
351+
])
321352
.test_missing_signers(true)
322353
.execute();
323354

@@ -350,14 +381,20 @@ fn test_deactivate_delinquent_incorrect_vote_owner() {
350381
let vote_address = Pubkey::new_unique();
351382
let stake_address = Pubkey::new_unique();
352383

384+
let rent_exempt_reserve = Rent::default().minimum_balance(StakeStateV2::size_of());
385+
let stake_lamports = rent_exempt_reserve + 1;
386+
353387
let initial_stake_state = StakeStateV2::Stake(
354-
Meta::default(),
388+
Meta {
389+
rent_exempt_reserve,
390+
..Meta::default()
391+
},
355392
new_stake(1, &vote_address, &VoteStateV4::default(), 1),
356393
StakeFlags::empty(),
357394
);
358395

359396
let stake_account = AccountSharedData::new_data_with_space(
360-
1,
397+
stake_lamports,
361398
&initial_stake_state,
362399
StakeStateV2::size_of(),
363400
&id(),
@@ -432,14 +469,20 @@ fn test_deactivate_delinquent_deserialize_vote_state(
432469
let vote_address = Pubkey::new_unique();
433470
let stake_address = Pubkey::new_unique();
434471

472+
let rent_exempt_reserve = Rent::default().minimum_balance(StakeStateV2::size_of());
473+
let stake_lamports = rent_exempt_reserve + 1;
474+
435475
let initial_stake_state = StakeStateV2::Stake(
436-
Meta::default(),
476+
Meta {
477+
rent_exempt_reserve,
478+
..Meta::default()
479+
},
437480
new_stake(1, &vote_address, &VoteStateV4::default(), 1),
438481
StakeFlags::empty(),
439482
);
440483

441484
let stake_account = AccountSharedData::new_data_with_space(
442-
1,
485+
stake_lamports,
443486
&initial_stake_state,
444487
StakeStateV2::size_of(),
445488
&id(),
@@ -471,8 +514,20 @@ fn test_deactivate_delinquent_deserialize_vote_state(
471514
ctx.mollusk
472515
.warp_to_slot(current_epoch * ctx.mollusk.sysvars.epoch_schedule.slots_per_epoch);
473516

517+
let stake_program_id = id();
474518
let (checks, test_missing_signers) = match expected_result {
475-
Ok(()) => (vec![Check::success()], true),
519+
Ok(()) => (
520+
vec![
521+
Check::success(),
522+
Check::all_rent_exempt(),
523+
Check::account(&stake_address)
524+
.lamports(stake_lamports)
525+
.owner(&stake_program_id)
526+
.space(StakeStateV2::size_of())
527+
.build(),
528+
],
529+
true,
530+
),
476531
Err(e) => (vec![Check::err(e)], false),
477532
};
478533

0 commit comments

Comments
 (0)