From b680185f48cae4d6e96973fbfe782945db465428 Mon Sep 17 00:00:00 2001 From: Eirik Ogilvie-Wigley Date: Wed, 9 Oct 2019 12:50:00 -0600 Subject: [PATCH] mempool_limit rpc test cleanup --- qa/rpc-tests/mempool_limit.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/qa/rpc-tests/mempool_limit.py b/qa/rpc-tests/mempool_limit.py index 6fe8838ea..9ce8487f5 100755 --- a/qa/rpc-tests/mempool_limit.py +++ b/qa/rpc-tests/mempool_limit.py @@ -9,6 +9,7 @@ from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( assert_equal, get_coinbase_address, + fail, initialize_chain_clean, start_nodes, wait_and_assert_operationid_status, @@ -33,6 +34,15 @@ class MempoolLimit(BitcoinTestFramework): ] return start_nodes(4, self.options.tmpdir, extra_args) + def check_mempool_sizes(self, expected_size, check_node3=True): + for i in range(4 if check_node3 else 3): + mempool = self.nodes[i].getrawmempool() + if len(mempool) != expected_size: + # print all nodes mempools before failing + for i in range(4): + print("Mempool for node {}: {}".format(i, mempool)) + fail("Fail: Mempool for node {}: size={}, expected={}".format(i, len(mempool), expected_size)) + def run_test(self): print("Mining blocks...") self.sync_all() @@ -59,10 +69,7 @@ class MempoolLimit(BitcoinTestFramework): wait_and_assert_operationid_status(self.nodes[2], opid2) self.sync_all() - for i in range(0, 4): - mempool = self.nodes[i].getrawmempool() - print("Mempool for node {}: {}".format(i, mempool)) - assert_equal(2, len(mempool), "node {}".format(i)) + self.check_mempool_sizes(2) print("Adding one more transaction...") opid3 = self.nodes[3].z_sendmany(get_coinbase_address(self.nodes[3]), [{"address": zaddr3, "amount": Decimal('9.999')}]) @@ -70,20 +77,17 @@ class MempoolLimit(BitcoinTestFramework): # The mempools are no longer guaranteed to be in a consistent state, so we cannot sync sleep(5) mempool_node3 = self.nodes[3].getrawmempool() - print("Mempool for node 3: {}".format(mempool_node3)) assert_equal(3, len(mempool_node3), "node {}".format(3)) print("Checking mempool size...") # Due to the size limit, there should only be 2 transactions in the mempool - for i in range(0, 3): - mempool = self.nodes[i].getrawmempool() - print("Mempool for node {}: {}".format(i, mempool)) - assert_equal(2, len(mempool), "node {}".format(i)) + self.check_mempool_sizes(2, False) self.nodes[3].generate(1) self.sync_all() # The mempool sizes should be reset + self.check_mempool_sizes(0) print("Checking mempool size reset after block mined...") zaddr4 = self.nodes[0].z_getnewaddress('sapling') opid4 = self.nodes[0].z_sendmany(zaddr1, [{"address": zaddr4, "amount": Decimal('9.998')}]) @@ -92,11 +96,9 @@ class MempoolLimit(BitcoinTestFramework): wait_and_assert_operationid_status(self.nodes[0], opid5) self.sync_all() - for i in range(0, 4): - mempool = self.nodes[i].getrawmempool() - print("Mempool for node {}: {}".format(i, mempool)) - assert_equal(2, len(mempool), "node {}".format(i)) + self.check_mempool_sizes(2) + # Make sure the transactions are mined without error self.nodes[3].generate(1) self.sync_all()