Skip to content

Commit ac6ee5b

Browse files
committed
test: Expand unit and functional tests for txreconciliation
1 parent bc84e24 commit ac6ee5b

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

src/test/txreconciliation_tests.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,21 @@ BOOST_AUTO_TEST_CASE(RegisterPeerTest)
2222
BOOST_CHECK(tracker.RegisterPeer(/*peer_id=*/0, /*is_peer_inbound=*/true,
2323
/*peer_recon_version=*/0, salt) == ReconciliationRegisterResult::PROTOCOL_VIOLATION);
2424

25-
// Valid registration.
25+
// Valid registration (inbound and outbound peers).
2626
BOOST_REQUIRE(!tracker.IsPeerRegistered(0));
2727
BOOST_REQUIRE(tracker.RegisterPeer(0, true, 1, salt) == ReconciliationRegisterResult::SUCCESS);
2828
BOOST_CHECK(tracker.IsPeerRegistered(0));
29-
30-
// Reconciliation version is higher than ours, should be able to register.
3129
BOOST_REQUIRE(!tracker.IsPeerRegistered(1));
3230
tracker.PreRegisterPeer(1);
33-
BOOST_REQUIRE(tracker.RegisterPeer(1, true, 2, salt) == ReconciliationRegisterResult::SUCCESS);
31+
BOOST_REQUIRE(tracker.RegisterPeer(1, false, 1, salt) == ReconciliationRegisterResult::SUCCESS);
3432
BOOST_CHECK(tracker.IsPeerRegistered(1));
3533

34+
// Reconciliation version is higher than ours, should be able to register.
35+
BOOST_REQUIRE(!tracker.IsPeerRegistered(2));
36+
tracker.PreRegisterPeer(2);
37+
BOOST_REQUIRE(tracker.RegisterPeer(2, true, 2, salt) == ReconciliationRegisterResult::SUCCESS);
38+
BOOST_CHECK(tracker.IsPeerRegistered(2));
39+
3640
// Try registering for the second time.
3741
BOOST_REQUIRE(tracker.RegisterPeer(1, false, 1, salt) == ReconciliationRegisterResult::ALREADY_REGISTERED);
3842

test/functional/p2p_sendtxrcncl.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def run_test(self):
7777
peer.wait_for_verack()
7878
verack_index = [i for i, msg in enumerate(peer.messages) if msg.msgtype == b'verack'][0]
7979
sendtxrcncl_index = [i for i, msg in enumerate(peer.messages) if msg.msgtype == b'sendtxrcncl'][0]
80-
assert(sendtxrcncl_index < verack_index)
80+
assert sendtxrcncl_index < verack_index
8181
self.nodes[0].disconnect_p2ps()
8282

8383
self.log.info('SENDTXRCNCL on pre-WTXID version should not be sent')
@@ -121,6 +121,14 @@ def run_test(self):
121121
peer.send_message(sendtxrcncl_low_version)
122122
peer.wait_for_disconnect()
123123

124+
self.log.info('SENDTXRCNCL with version=2 is valid')
125+
sendtxrcncl_higher_version = create_sendtxrcncl_msg()
126+
sendtxrcncl_higher_version.version = 2
127+
peer = self.nodes[0].add_p2p_connection(PeerNoVerack(), send_version=True, wait_for_verack=False)
128+
with self.nodes[0].assert_debug_log(['Register peer=6']):
129+
peer.send_message(sendtxrcncl_higher_version)
130+
self.nodes[0].disconnect_p2ps()
131+
124132
self.log.info('sending SENDTXRCNCL after sending VERACK triggers a disconnect')
125133
peer = self.nodes[0].add_p2p_connection(P2PInterface())
126134
with self.nodes[0].assert_debug_log(["sendtxrcncl received after verack"]):

0 commit comments

Comments
 (0)