diff options
author | MarcoFalke <falke.marco@gmail.com> | 2017-05-08 20:13:47 +0200 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2017-05-08 20:14:36 +0200 |
commit | 6a796b2b53fe542e0f340f250f4f20d69efed8d0 (patch) | |
tree | 96f3891193fbd6b02b892695cae551a492409bd4 /test/functional | |
parent | 23d78c4dd01bc74ba35db3e3df95280f6f1b2e22 (diff) | |
parent | 329ac3bab11819d59921dcd2cc033b02610fcf9a (diff) |
Merge #10342: [tests] Improve mempool_persist test
329ac3b [tests] use wait_until in mempool_persist.py (John Newbery)
Tree-SHA512: 3f5fe3dcdb5da3b10a41f7b88d29c15b79c02fbb037914b4342b77428f2afe8b342f6adacb28a9eb5549aa156cd146175389bd61909a20df3fecb88361c4779f
Diffstat (limited to 'test/functional')
-rwxr-xr-x | test/functional/mempool_persist.py | 41 |
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() |