Skip to content

Commit 8d99fbd

Browse files
committed
properly test get_zmq_notifications
1 parent 4778897 commit 8d99fbd

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

integration_test/run.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ bitcoind -regtest $BLOCKFILTERARG $FALLBACKFEEARG \
3434
-rpcport=12349 \
3535
-server=1 \
3636
-txindex=1 \
37-
-printtoconsole=0 &
37+
-printtoconsole=0 \
38+
-zmqpubrawblock=tcp://0.0.0.0:28332 \
39+
-zmqpubrawtx=tcp://0.0.0.0:28333 &
3840
PID2=$!
3941

4042
# Let it connect to the other node.

integration_test/src/main.rs

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#[macro_use]
1414
extern crate lazy_static;
1515

16+
use std::cmp::Ordering;
1617
use std::collections::HashMap;
1718
use std::str::FromStr;
1819

@@ -32,7 +33,7 @@ use bitcoin::{
3233
Sequence, SignedAmount, Transaction, TxIn, TxOut, Txid, Witness,
3334
};
3435
use bitcoincore_rpc::bitcoincore_rpc_json::{
35-
GetBlockTemplateModes, GetBlockTemplateRules, ScanTxOutRequest,
36+
GetBlockTemplateModes, GetBlockTemplateRules, ScanTxOutRequest, GetZmqNotificationsResult,
3637
};
3738

3839
lazy_static! {
@@ -1424,10 +1425,32 @@ fn test_get_index_info(cl: &Client) {
14241425
}
14251426

14261427
fn test_get_zmq_notifications(cl: &Client) {
1427-
let zmq_info = cl.get_zmq_notifications().unwrap();
1428+
let mut zmq_info = cl.get_zmq_notifications().unwrap();
1429+
1430+
// it doesn't matter in which order Bitcoin Core returns the result,
1431+
// but checking it is easier if it has a known order
1432+
zmq_info.sort_by(|a, b| {
1433+
if a.address < b.address {
1434+
Ordering::Less
1435+
} else if a.address == b.address {
1436+
Ordering::Equal
1437+
} else {
1438+
Ordering::Greater
1439+
}
1440+
});
14281441

1429-
// no zmq subscribers are configured
1430-
assert!(zmq_info.is_empty());
1442+
assert!(zmq_info == vec![
1443+
GetZmqNotificationsResult {
1444+
notification_type: "pubrawblock".to_owned(),
1445+
address: "tcp://0.0.0.0:28332".to_owned(),
1446+
hwm: 1000
1447+
},
1448+
GetZmqNotificationsResult {
1449+
notification_type: "pubrawtx".to_owned(),
1450+
address: "tcp://0.0.0.0:28333".to_owned(),
1451+
hwm: 1000
1452+
},
1453+
]);
14311454
}
14321455

14331456
fn test_stop(cl: Client) {

0 commit comments

Comments
 (0)