aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2017-05-05 09:17:39 -0400
committerJohn Newbery <john@johnnewbery.com>2017-05-08 14:00:40 -0400
commit329ac3bab11819d59921dcd2cc033b02610fcf9a (patch)
tree8cc863c7f8652222a9be5547e2cc4a11049e1396 /test
parent35da2aeed7d4000dde93957c3b6e048ab83c4f2b (diff)
[tests] use wait_until in mempool_persist.py
Diffstat (limited to 'test')
-rwxr-xr-xtest/functional/mempool_persist.py41
1 files changed, 20 insertions, 21 deletions
diff --git a/test/functional/mempool_persist.py b/test/functional/mempool_persist.py
index c22b7ff020..7b15476ea2 100755
--- a/test/functional/mempool_persist.py
+++ b/test/functional/mempool_persist.py
@@ -6,11 +6,11 @@
By default, bitcoind will dump mempool on shutdown and
then reload it on startup. This can be overridden with
-the -persistmempool=false command line option.
+the -persistmempool=0 command line option.
Test is as follows:
- - start node0, node1 and node2. node1 has -persistmempool=false
+ - start node0, node1 and node2. node1 has -persistmempool=0
- create 5 transactions on node2 to its own address. Note that these
are not sent to node0 or node1 addresses because we don't want
them to be saved in the wallet.
@@ -20,17 +20,19 @@ Test is as follows:
in its mempool. Shutdown node0. This tests that by default the
mempool is persistent.
- startup node1. Verify that its mempool is empty. Shutdown node1.
- This tests that with -persistmempool=false, the mempool is not
+ This tests that with -persistmempool=0, the mempool is not
dumped to disk when the node is shut down.
- - Restart node0 with -persistmempool=false. Verify that its mempool is
- empty. Shutdown node0. This tests that with -persistmempool=false,
+ - Restart node0 with -persistmempool=0. Verify that its mempool is
+ empty. Shutdown node0. This tests that with -persistmempool=0,
the mempool is not loaded from disk on start up.
- - Restart node0 with -persistmempool=true. Verify that it has 5
- transactions in its mempool. This tests that -persistmempool=false
+ - Restart node0 with -persistmempool. Verify that it has 5
+ transactions in its mempool. This tests that -persistmempool=0
does not overwrite a previously valid mempool stored on disk.
"""
+import time
+from test_framework.mininode import wait_until
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import *
@@ -38,18 +40,10 @@ class MempoolPersistTest(BitcoinTestFramework):
def __init__(self):
super().__init__()
+ # We need 3 nodes for this test. Node1 does not have a persistent mempool.
self.num_nodes = 3
self.setup_clean_chain = False
-
- def setup_network(self):
- # We need 3 nodes for this test. Node1 does not have a persistent mempool.
- self.nodes = []
- self.nodes.append(start_node(0, self.options.tmpdir))
- self.nodes.append(start_node(1, self.options.tmpdir, ["-persistmempool=false"]))
- self.nodes.append(start_node(2, self.options.tmpdir))
- connect_nodes_bi(self.nodes, 0, 2)
- connect_nodes_bi(self.nodes, 1, 2)
- self.is_network_split = False
+ self.extra_args = [[], ["-persistmempool=0"], []]
def run_test(self):
chain_height = self.nodes[0].getblockcount()
@@ -57,6 +51,7 @@ class MempoolPersistTest(BitcoinTestFramework):
self.log.debug("Mine a single block to get out of IBD")
self.nodes[0].generate(1)
+ self.sync_all()
self.log.debug("Send 5 transactions from node2 (to its own address)")
for i in range(5):
@@ -72,20 +67,24 @@ class MempoolPersistTest(BitcoinTestFramework):
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir))
self.nodes.append(start_node(1, self.options.tmpdir))
- assert_equal(len(self.nodes[0].getrawmempool()), 5)
+ # Give bitcoind a second to reload the mempool
+ time.sleep(1)
+ assert wait_until(lambda: len(self.nodes[0].getrawmempool()) == 5)
assert_equal(len(self.nodes[1].getrawmempool()), 0)
- self.log.debug("Stop-start node0 with -persistmempool=false. Verify that it doesn't load its mempool.dat file.")
+ self.log.debug("Stop-start node0 with -persistmempool=0. Verify that it doesn't load its mempool.dat file.")
stop_nodes(self.nodes)
self.nodes = []
- self.nodes.append(start_node(0, self.options.tmpdir, ["-persistmempool=false"]))
+ self.nodes.append(start_node(0, self.options.tmpdir, ["-persistmempool=0"]))
+ # Give bitcoind a second to reload the mempool
+ time.sleep(1)
assert_equal(len(self.nodes[0].getrawmempool()), 0)
self.log.debug("Stop-start node0. Verify that it has the transactions in its mempool.")
stop_nodes(self.nodes)
self.nodes = []
self.nodes.append(start_node(0, self.options.tmpdir))
- assert_equal(len(self.nodes[0].getrawmempool()), 5)
+ assert wait_until(lambda: len(self.nodes[0].getrawmempool()) == 5)
if __name__ == '__main__':
MempoolPersistTest().main()