Skip to content

Commit 8237889

Browse files
author
MarcoFalke
committed
Merge #17435: test: check custom ancestor limit in mempool_packages.py
4999781 test: check custom ancestor limit in mempool_packages.py (Sebastian Falbesoner) Pull request description: The functional test `mempool_packages.py` starts one node with default ancestor/descendant limit settings and one with a custom, reduced ancestor limit (currently `-limitancestorcount=5`). The effect of the latter had not been tested yet though. This is approached in this PR by checking on the expected mempool contents of node1 after the node0 ancestor tests are done, via the following three conditions: - the # of txs in the node1 mempool is equal to the the limit - all txs in node1 mempool are a subset of txs in node0 mempool - the node1 mempool txs match the start of the constructed tx-chain Note that this still doesn't *fully* check the expected mempool of node1 (e.g. that it isn't influenced by `prioritisetransaction` RPC on node0), hence I add another TODO. In the future it would make sense to also set a custom descendant limit when the second TODO about checking node1's mempool is approached: https://github.com/bitcoin/bitcoin/blob/89e93135aedf984f7a98771f047e2beb6cdbdb8e/test/functional/mempool_packages.py#L228 ACKs for top commit: MarcoFalke: ACK 4999781 👲 Tree-SHA512: d3a1d19fb49731238ad08ee7c02e2fa81a227e3b4ef3340d68598de42ddb62be9161134f6b8e08fa76b8c9faa02fecfa01111159642e20e9f358292a757b7608
2 parents 1028882 + 4999781 commit 8237889

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

test/functional/mempool_packages.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,19 @@
1414
satoshi_round,
1515
)
1616

17+
# default limits
1718
MAX_ANCESTORS = 25
1819
MAX_DESCENDANTS = 25
20+
# custom limits for node1
21+
MAX_ANCESTORS_CUSTOM = 5
1922

2023
class MempoolPackagesTest(BitcoinTestFramework):
2124
def set_test_params(self):
2225
self.num_nodes = 2
23-
self.extra_args = [["-maxorphantx=1000"], ["-maxorphantx=1000", "-limitancestorcount=5"]]
26+
self.extra_args = [
27+
["-maxorphantx=1000"],
28+
["-maxorphantx=1000", "-limitancestorcount={}".format(MAX_ANCESTORS_CUSTOM)],
29+
]
2430

2531
def skip_test_if_missing_module(self):
2632
self.skip_if_no_wallet()
@@ -188,7 +194,14 @@ def run_test(self):
188194
assert_equal(mempool[x]['descendantfees'], descendant_fees * COIN + 2000)
189195
assert_equal(mempool[x]['fees']['descendant'], descendant_fees+satoshi_round(0.00002))
190196

191-
# TODO: check that node1's mempool is as expected
197+
# Check that node1's mempool is as expected (-> custom ancestor limit)
198+
mempool0 = self.nodes[0].getrawmempool(False)
199+
mempool1 = self.nodes[1].getrawmempool(False)
200+
assert_equal(len(mempool1), MAX_ANCESTORS_CUSTOM)
201+
assert set(mempool1).issubset(set(mempool0))
202+
for tx in chain[:MAX_ANCESTORS_CUSTOM]:
203+
assert tx in mempool1
204+
# TODO: more detailed check of node1's mempool (fees etc.)
192205

193206
# TODO: test ancestor size limits
194207

0 commit comments

Comments
 (0)