mempool_limit rpc test cleanup

This commit is contained in:
Eirik Ogilvie-Wigley 2019-10-09 12:50:00 -06:00
parent 61b7dfb6f0
commit b680185f48
1 changed files with 15 additions and 13 deletions

View File

@ -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()