Skip to content

Commit 2434867

Browse files
author
Maciej Witowski
authored
Implement Drop as a safeguard for programmer errors (#618)
It addresses #605
1 parent fdcf50b commit 2434867

20 files changed

+150
-93
lines changed

actors/datacap/tests/datacap_actor_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ mod mint {
8787
"must be a multiple of 1000000000000000000",
8888
h.mint(&mut rt, &*ALICE, &amt, vec![]),
8989
);
90+
rt.reset();
9091
h.check_state(&rt);
9192
}
9293

actors/miner/tests/batch_method_network_fees_test.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ fn insufficient_funds_for_aggregated_prove_commit_network_fee() {
6464
);
6565

6666
expect_abort(ExitCode::USR_INSUFFICIENT_FUNDS, res);
67+
rt.reset();
6768
}
6869

6970
#[test]
@@ -112,6 +113,7 @@ fn insufficient_funds_for_batch_precommit_network_fee() {
112113
"unlocked balance can not repay fee debt",
113114
res,
114115
);
116+
rt.reset();
115117
}
116118

117119
#[test]
@@ -167,6 +169,7 @@ fn insufficient_funds_for_batch_precommit_in_combination_of_fee_debt_and_network
167169
"unlocked balance can not repay fee debt",
168170
res,
169171
);
172+
rt.reset();
170173
}
171174

172175
#[test]
@@ -215,6 +218,7 @@ fn enough_funds_for_fee_debt_and_network_fee_but_not_for_pcd() {
215218
"insufficient funds 0.0 for pre-commit deposit",
216219
res,
217220
);
221+
rt.reset();
218222

219223
// state untouched
220224
let state: State = rt.get_state();

actors/miner/tests/change_owner_address_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ fn proposed_must_be_valid() {
9999
for nominee in nominees {
100100
let result = h.change_owner_address(&mut rt, nominee);
101101
expect_abort(ExitCode::USR_ILLEGAL_ARGUMENT, result);
102+
rt.reset();
102103
}
103104

104105
h.check_state(&rt);

actors/miner/tests/change_worker_address_test.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,49 +181,47 @@ fn fails_if_control_addresses_length_exceeds_maximum_limit() {
181181
"control addresses length",
182182
result,
183183
);
184+
rt.reset();
184185

185186
h.check_state(&rt);
186187
}
187188

188189
#[test]
189190
fn fails_if_unable_to_resolve_control_address() {
190191
let (h, mut rt) = setup();
191-
192192
let control_address = new_bls_addr(42);
193193
let result = h.change_worker_address(&mut rt, h.worker, vec![control_address]);
194194
expect_abort(ExitCode::USR_ILLEGAL_ARGUMENT, result);
195+
rt.reset();
195196

196197
h.check_state(&rt);
197198
}
198199

199200
#[test]
200201
fn fails_if_unable_to_resolve_worker_address() {
201202
let (h, mut rt) = setup();
202-
203203
let new_worker = new_bls_addr(42);
204204
let result = h.change_worker_address(&mut rt, new_worker, vec![]);
205205
expect_abort(ExitCode::USR_ILLEGAL_ARGUMENT, result);
206-
206+
rt.reset();
207207
h.check_state(&rt);
208208
}
209209

210210
#[test]
211211
fn fails_if_worker_public_key_is_not_bls_but_id() {
212212
let (mut h, mut rt) = setup();
213-
214213
let new_worker = Address::new_id(999);
215214
h.worker_key = Address::new_id(505);
216215

217216
let result = h.change_worker_address(&mut rt, new_worker, vec![]);
218217
expect_abort(ExitCode::USR_ILLEGAL_ARGUMENT, result);
219-
218+
rt.reset();
220219
h.check_state(&rt);
221220
}
222221

223222
#[test]
224223
fn fails_if_worker_public_key_is_not_bls_but_secp() {
225224
let (mut h, mut rt) = setup();
226-
227225
let new_worker = Address::new_id(999);
228226
h.worker_key = Address::new_secp256k1(&[0x42; 65]).unwrap();
229227

actors/miner/tests/compact_partitions_test.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ fn fails_if_deadline_out_of_range() {
194194
&format!("invalid deadline {w_post_period_deadlines}"),
195195
result,
196196
);
197-
197+
rt.reset();
198198
h.check_state(&rt);
199199
}
200200

actors/miner/tests/compact_sector_numbers_tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,13 @@ mod compact_sector_numbers_test {
116116
bitfield_from_slice(&[target_sector_num, target_sector_num + 1]),
117117
),
118118
);
119-
119+
rt.reset();
120120
check_state_invariants_from_mock_runtime(&rt);
121121
}
122122

123123
#[test]
124124
fn sector_number_range_limits() {
125125
let (h, mut rt) = setup();
126-
127126
// Limits ok
128127
h.compact_sector_numbers(&mut rt, h.worker, bitfield_from_slice(&[0, MAX_SECTOR_NUMBER]));
129128

@@ -136,18 +135,19 @@ mod compact_sector_numbers_test {
136135
bitfield_from_slice(&[MAX_SECTOR_NUMBER + 1]),
137136
),
138137
);
138+
rt.reset();
139139
check_state_invariants_from_mock_runtime(&rt);
140140
}
141141

142142
#[test]
143143
fn compacting_no_sector_numbers_aborts() {
144144
let (h, mut rt) = setup();
145-
146145
expect_abort(
147146
ExitCode::USR_ILLEGAL_ARGUMENT,
148147
// compact nothing
149148
h.compact_sector_numbers_raw(&mut rt, h.worker, bitfield_from_slice(&[])),
150149
);
150+
rt.reset();
151151
check_state_invariants_from_mock_runtime(&rt);
152152
}
153153
}

actors/miner/tests/declare_recoveries.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ fn recovery_must_pay_back_fee_debt() {
5353
let (mut h, mut rt) = setup();
5454
let one_sector =
5555
h.commit_and_prove_sectors(&mut rt, 1, DEFAULT_SECTOR_EXPIRATION as u64, vec![], true);
56+
5657
// advance to first proving period and submit so we'll have time to declare the fault next cycle
5758
h.advance_and_submit_posts(&mut rt, &one_sector);
5859

actors/miner/tests/extend_sector_expiration_test.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,7 @@ fn update_expiration_legacy_fails_on_new_sector_with_deals() {
769769
"cannot use legacy sector extension for simple qa power with deal weight",
770770
h.extend_sectors(&mut rt, params),
771771
);
772+
rt.reset();
772773
check_for_expiration(
773774
&mut h,
774775
&mut rt,

actors/miner/tests/miner_actor_test_commitment.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ mod miner_actor_test_commitment {
112112
let mut h = ActorHarness::new(period_offset);
113113
h.set_proof_type(RegisteredSealProof::StackedDRG64GiBV1);
114114
let mut rt = h.new_runtime();
115+
115116
rt.set_balance(insufficient_balance);
116117
rt.set_received(TokenAmount::zero());
117118

@@ -129,6 +130,7 @@ mod miner_actor_test_commitment {
129130
ExitCode::USR_INSUFFICIENT_FUNDS,
130131
h.pre_commit_sector(&mut rt, precommit_params, util::PreCommitConfig::default(), true),
131132
);
133+
rt.reset();
132134
h.check_state(&rt);
133135
}
134136

@@ -169,6 +171,7 @@ mod miner_actor_test_commitment {
169171

170172
let mut h = ActorHarness::new(period_offset);
171173
let mut rt = h.new_runtime();
174+
172175
rt.set_balance(BIG_BALANCE.clone());
173176
rt.set_received(TokenAmount::zero());
174177

@@ -468,6 +471,7 @@ mod miner_actor_test_commitment {
468471
let mut h = ActorHarness::new(period_offset);
469472
h.set_proof_type(proof);
470473
let mut rt = h.new_runtime();
474+
471475
rt.set_balance(BIG_BALANCE.clone());
472476
rt.set_received(TokenAmount::zero());
473477

@@ -508,6 +512,7 @@ mod miner_actor_test_commitment {
508512
"too many deals for sector",
509513
ret,
510514
);
515+
rt.reset();
511516

512517
// sector at or below limit succeeds
513518
let (mut rt, h, _) = setup(proof);
@@ -533,6 +538,7 @@ mod miner_actor_test_commitment {
533538

534539
let h = ActorHarness::new(period_offset);
535540
let mut rt = h.new_runtime();
541+
536542
rt.set_balance(BIG_BALANCE.clone());
537543
rt.set_received(TokenAmount::zero());
538544

actors/miner/tests/miner_actor_test_precommit_batch.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ mod miner_actor_precommit_batch {
282282
});
283283

284284
let mut rt = h.new_runtime();
285+
285286
rt.set_balance(BIG_BALANCE.clone());
286287
rt.set_received(TokenAmount::zero());
287288

@@ -321,6 +322,7 @@ mod miner_actor_precommit_batch {
321322
proving_period_offset: period_offset,
322323
});
323324
let mut rt = h.new_runtime();
325+
324326
rt.set_balance(BIG_BALANCE.clone());
325327
rt.set_received(TokenAmount::zero());
326328

@@ -359,6 +361,7 @@ mod miner_actor_precommit_batch {
359361
proving_period_offset: period_offset,
360362
});
361363
let mut rt = h.new_runtime();
364+
362365
rt.set_balance(BIG_BALANCE.clone());
363366
rt.set_received(TokenAmount::zero());
364367

@@ -433,6 +436,7 @@ mod miner_actor_precommit_batch {
433436
"and passed CompactCommD",
434437
result,
435438
);
439+
rt.reset();
436440
}
437441
}
438442
}

0 commit comments

Comments
 (0)