Skip to content

Commit 0732212

Browse files
committed
fix: update tests to match new check_proposal functionality
1 parent fdbecce commit 0732212

File tree

1 file changed

+74
-90
lines changed

1 file changed

+74
-90
lines changed

stacks-signer/src/tests/chainstate.rs

Lines changed: 74 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use blockstack_lib::net::api::get_tenures_fork_info::TenureForkingInfo;
2929
use blockstack_lib::net::api::getsortition::SortitionInfo;
3030
use clarity::types::chainstate::{BurnchainHeaderHash, SortitionId};
3131
use clarity::util::vrf::VRFProof;
32+
use libsigner::v0::messages::RejectCode;
3233
use libsigner::{BlockProposal, BlockProposalData};
3334
use slog::slog_info;
3435
use stacks_common::bitvec::BitVec;
@@ -41,9 +42,7 @@ use stacks_common::util::get_epoch_time_secs;
4142
use stacks_common::util::hash::{Hash160, Sha512Trunc256Sum};
4243
use stacks_common::util::secp256k1::MessageSignature;
4344

44-
use crate::chainstate::{
45-
ProposalEvalConfig, SignerChainstateError, SortitionMinerStatus, SortitionState, SortitionsView,
46-
};
45+
use crate::chainstate::{ProposalEvalConfig, SortitionMinerStatus, SortitionState, SortitionsView};
4746
use crate::client::tests::MockServerClient;
4847
use crate::client::StacksClient;
4948
use crate::signerdb::{BlockInfo, SignerDb};
@@ -133,15 +132,13 @@ fn check_proposal_units() {
133132
let (stacks_client, mut signer_db, block_pk, mut view, block) =
134133
setup_test_environment("check_proposal_units");
135134

136-
assert!(!view
137-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
138-
.unwrap());
135+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
136+
.expect_err("Proposal should not validate");
139137

140138
view.last_sortition = None;
141139

142-
assert!(!view
143-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
144-
.unwrap());
140+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
141+
.expect_err("Proposal should not validate");
145142
}
146143

147144
#[test]
@@ -150,33 +147,31 @@ fn check_proposal_miner_pkh_mismatch() {
150147
setup_test_environment("miner_pkh_mismatch");
151148
block.header.consensus_hash = view.cur_sortition.consensus_hash;
152149
let different_block_pk = StacksPublicKey::from_private(&StacksPrivateKey::from_seed(&[2, 3]));
153-
assert!(!view
154-
.check_proposal(
155-
&stacks_client,
156-
&mut signer_db,
157-
&block,
158-
&different_block_pk,
159-
false,
160-
)
161-
.unwrap());
150+
view.check_proposal(
151+
&stacks_client,
152+
&mut signer_db,
153+
&block,
154+
&different_block_pk,
155+
false,
156+
)
157+
.expect_err("Proposal should not validate");
162158

163159
block.header.consensus_hash = view.last_sortition.as_ref().unwrap().consensus_hash;
164-
assert!(!view
165-
.check_proposal(
166-
&stacks_client,
167-
&mut signer_db,
168-
&block,
169-
&different_block_pk,
170-
false,
171-
)
172-
.unwrap());
160+
view.check_proposal(
161+
&stacks_client,
162+
&mut signer_db,
163+
&block,
164+
&different_block_pk,
165+
false,
166+
)
167+
.expect_err("Proposal should not validate");
173168
}
174169

175170
fn reorg_timing_testing(
176171
test_name: &str,
177172
first_proposal_burn_block_timing_secs: u64,
178173
sortition_timing_secs: u64,
179-
) -> Result<bool, SignerChainstateError> {
174+
) -> Result<(), RejectCode> {
180175
let (_stacks_client, mut signer_db, block_pk, mut view, mut block) =
181176
setup_test_environment(test_name);
182177
view.config.first_proposal_burn_block_timing =
@@ -286,32 +281,29 @@ fn reorg_timing_testing(
286281
#[test]
287282
fn check_proposal_reorg_timing_bad() {
288283
let result = reorg_timing_testing("reorg_timing_bad", 30, 31);
289-
assert!(!result.unwrap(), "Proposal should not validate, because the reorg occurred in a block whose proposed time was long enough before the sortition");
284+
result.expect_err("Proposal should not validate, because the reorg occurred in a block whose proposed time was long enough before the sortition");
290285
}
291286

292287
#[test]
293288
fn check_proposal_reorg_timing_ok() {
294289
let result = reorg_timing_testing("reorg_timing_okay", 30, 30);
295-
assert!(result.unwrap(), "Proposal should validate okay, because the reorg occurred in a block whose proposed time was close to the sortition");
290+
result.expect_err("Proposal should validate okay, because the reorg occurred in a block whose proposed time was close to the sortition");
296291
}
297292

298293
#[test]
299294
fn check_proposal_invalid_status() {
300295
let (stacks_client, mut signer_db, block_pk, mut view, mut block) =
301296
setup_test_environment("invalid_status");
302297
block.header.consensus_hash = view.cur_sortition.consensus_hash;
303-
assert!(view
304-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
305-
.unwrap());
298+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
299+
.expect("Proposal should validate");
306300
view.cur_sortition.miner_status = SortitionMinerStatus::InvalidatedAfterFirstBlock;
307-
assert!(!view
308-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
309-
.unwrap());
301+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
302+
.expect_err("Proposal should not validate");
310303

311304
block.header.consensus_hash = view.last_sortition.as_ref().unwrap().consensus_hash;
312-
assert!(!view
313-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
314-
.unwrap());
305+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
306+
.expect_err("Proposal should not validate");
315307

316308
view.cur_sortition.miner_status = SortitionMinerStatus::InvalidatedBeforeFirstBlock;
317309
block.header.consensus_hash = view.last_sortition.as_ref().unwrap().consensus_hash;
@@ -320,9 +312,8 @@ fn check_proposal_invalid_status() {
320312
// the stacks-node to do that (because the stacks-node actually knows whether or not their
321313
// parent blocks have been seen before, while the signer state checks are only reasoning about
322314
// stacks blocks seen by the signer, which may be a subset)
323-
assert!(view
324-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
325-
.unwrap());
315+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
316+
.expect("Proposal should validate");
326317
}
327318

328319
fn make_tenure_change_payload() -> TenureChangePayload {
@@ -369,19 +360,17 @@ fn check_proposal_tenure_extend_invalid_conditions() {
369360
extend_payload.prev_tenure_consensus_hash = block.header.consensus_hash;
370361
let tx = make_tenure_change_tx(extend_payload);
371362
block.txs = vec![tx];
372-
assert!(!view
373-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
374-
.unwrap());
363+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
364+
.expect_err("Proposal should not validate");
375365

376366
let mut extend_payload = make_tenure_change_payload();
377367
extend_payload.burn_view_consensus_hash = ConsensusHash([64; 20]);
378368
extend_payload.tenure_consensus_hash = block.header.consensus_hash;
379369
extend_payload.prev_tenure_consensus_hash = block.header.consensus_hash;
380370
let tx = make_tenure_change_tx(extend_payload);
381371
block.txs = vec![tx];
382-
assert!(view
383-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
384-
.unwrap());
372+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
373+
.expect("Proposal should validate");
385374
}
386375

387376
#[test]
@@ -401,47 +390,43 @@ fn check_block_proposal_timeout() {
401390
.insert_burn_block(&burn_hash, burn_height, &received_time)
402391
.unwrap();
403392

404-
assert!(view
405-
.check_proposal(
406-
&stacks_client,
407-
&mut signer_db,
408-
&curr_sortition_block,
409-
&block_pk,
410-
false,
411-
)
412-
.unwrap());
413-
414-
assert!(!view
415-
.check_proposal(
416-
&stacks_client,
417-
&mut signer_db,
418-
&last_sortition_block,
419-
&block_pk,
420-
false,
421-
)
422-
.unwrap());
393+
view.check_proposal(
394+
&stacks_client,
395+
&mut signer_db,
396+
&curr_sortition_block,
397+
&block_pk,
398+
false,
399+
)
400+
.expect("Proposal should validate");
401+
402+
view.check_proposal(
403+
&stacks_client,
404+
&mut signer_db,
405+
&last_sortition_block,
406+
&block_pk,
407+
false,
408+
)
409+
.expect_err("Proposal should not validate");
423410

424411
// Sleep a bit to time out the block proposal
425412
std::thread::sleep(Duration::from_secs(5));
426-
assert!(!view
427-
.check_proposal(
428-
&stacks_client,
429-
&mut signer_db,
430-
&curr_sortition_block,
431-
&block_pk,
432-
false,
433-
)
434-
.unwrap());
435-
436-
assert!(view
437-
.check_proposal(
438-
&stacks_client,
439-
&mut signer_db,
440-
&last_sortition_block,
441-
&block_pk,
442-
false,
443-
)
444-
.unwrap());
413+
view.check_proposal(
414+
&stacks_client,
415+
&mut signer_db,
416+
&curr_sortition_block,
417+
&block_pk,
418+
false,
419+
)
420+
.expect_err("Proposal should not validate");
421+
422+
view.check_proposal(
423+
&stacks_client,
424+
&mut signer_db,
425+
&last_sortition_block,
426+
&block_pk,
427+
false,
428+
)
429+
.expect("Proposal should validate");
445430
}
446431

447432
#[test]
@@ -534,9 +519,8 @@ fn check_proposal_refresh() {
534519
let (stacks_client, mut signer_db, block_pk, mut view, mut block) =
535520
setup_test_environment("check_proposal_refresh");
536521
block.header.consensus_hash = view.cur_sortition.consensus_hash;
537-
assert!(view
538-
.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
539-
.unwrap());
522+
view.check_proposal(&stacks_client, &mut signer_db, &block, &block_pk, false)
523+
.expect("Proposal should validate");
540524

541525
let MockServerClient {
542526
server,
@@ -586,5 +570,5 @@ fn check_proposal_refresh() {
586570
format!("HTTP/1.1 200 Ok\n\n{}", serde_json::json!(expected_result)).as_bytes(),
587571
);
588572
let result = h.join().unwrap();
589-
assert!(result.unwrap());
573+
result.expect("Proposal should validate");
590574
}

0 commit comments

Comments
 (0)