Skip to content

Commit 04e0775

Browse files
author
Aaron Blankstein
committed
make the event check in the integration test deterministic
1 parent 88afb82 commit 04e0775

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

testnet/stacks-node/src/event_dispatcher.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ impl EventObserver {
153153
STATUS_RESP_NOT_COMMITTED
154154
}
155155
}
156-
(true, Value::Response(response_data)) => STATUS_RESP_POST_CONDITION,
156+
(true, Value::Response(_)) => STATUS_RESP_POST_CONDITION,
157157
_ => unreachable!(), // Transaction results should always be a Value::Response type
158158
};
159159

testnet/stacks-node/src/tests/neon_integrations.rs

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ use stacks::burnchains::{Address, Burnchain, PoxConstants};
66
use stacks::chainstate::burn::ConsensusHash;
77
use stacks::chainstate::stacks::{
88
db::StacksChainState, StacksAddress, StacksBlock, StacksBlockHeader, StacksPrivateKey,
9-
StacksPublicKey, StacksTransaction,
9+
StacksPublicKey, StacksTransaction, TransactionPayload,
1010
};
1111
use stacks::core;
1212
use stacks::net::StacksMessageCodec;
13+
use stacks::util::hash::hex_bytes;
1314
use stacks::util::secp256k1::Secp256k1PublicKey;
1415
use stacks::vm::costs::ExecutionCost;
1516
use stacks::vm::execute;
@@ -936,23 +937,32 @@ fn pox_integration_test() {
936937
// look up the return value of our stacking operation...
937938
let mut tested = false;
938939
for block in blocks_observed.iter() {
940+
if tested {
941+
break;
942+
}
939943
let transactions = block.get("transactions").unwrap().as_array().unwrap();
940944
eprintln!("{}", transactions.len());
941-
if transactions.len() == 2 {
942-
for tx in transactions.iter() {
943-
if tx.get("tx_index").unwrap().as_u64().unwrap() != 1 {
944-
continue;
945-
}
946-
let raw_result = tx.get("raw_result").unwrap().as_str().unwrap();
947-
let parsed = <Value as ClarityDeserializable<Value>>::deserialize(&raw_result[2..]);
948-
assert_eq!(parsed.to_string(),
949-
format!("(ok (tuple (lock-amount u1000000000000000) (stacker {}) (unlock-burn-height u270)))",
950-
&spender_addr));
945+
for tx in transactions.iter() {
946+
let raw_tx = tx.get("raw_tx").unwrap().as_str().unwrap();
947+
if raw_tx == "0x00" {
948+
continue;
949+
}
950+
let tx_bytes = hex_bytes(&raw_tx[2..]).unwrap();
951+
let parsed = StacksTransaction::consensus_deserialize(&mut &tx_bytes[..]).unwrap();
952+
if let TransactionPayload::ContractCall(_) = parsed.payload {
953+
} else {
954+
continue;
951955
}
956+
957+
let raw_result = tx.get("raw_result").unwrap().as_str().unwrap();
958+
let parsed = <Value as ClarityDeserializable<Value>>::deserialize(&raw_result[2..]);
959+
assert_eq!(parsed.to_string(),
960+
format!("(ok (tuple (lock-amount u1000000000000000) (stacker {}) (unlock-burn-height u270)))",
961+
&spender_addr));
952962
tested = true;
953-
continue;
954963
}
955964
}
965+
956966
assert!(tested);
957967

958968
// let's stack with spender 2 and spender 3...

0 commit comments

Comments
 (0)