mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
[qa] TestNode: Add wait_until_stopped helper method
This commit is contained in:
parent
777519bd96
commit
faa8d9581a
@ -21,7 +21,7 @@ from decimal import Decimal
|
|||||||
import http.client
|
import http.client
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from test_framework.test_framework import (BitcoinTestFramework, BITCOIND_PROC_WAIT_TIMEOUT)
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import (
|
from test_framework.util import (
|
||||||
assert_equal,
|
assert_equal,
|
||||||
assert_raises,
|
assert_raises,
|
||||||
@ -141,7 +141,7 @@ class BlockchainTest(BitcoinTestFramework):
|
|||||||
except (ConnectionError, http.client.BadStatusLine):
|
except (ConnectionError, http.client.BadStatusLine):
|
||||||
pass # The node already shut down before response
|
pass # The node already shut down before response
|
||||||
self.log.debug('Node should stop at this height...')
|
self.log.debug('Node should stop at this height...')
|
||||||
self.nodes[0].process.wait(timeout=BITCOIND_PROC_WAIT_TIMEOUT)
|
self.nodes[0].wait_until_stopped()
|
||||||
self.start_node(0)
|
self.start_node(0)
|
||||||
assert_equal(self.nodes[0].getblockcount(), 207)
|
assert_equal(self.nodes[0].getblockcount(), 207)
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
"""Test the fundrawtransaction RPC."""
|
"""Test the fundrawtransaction RPC."""
|
||||||
|
|
||||||
from test_framework.test_framework import BitcoinTestFramework, BITCOIND_PROC_WAIT_TIMEOUT
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import *
|
from test_framework.util import *
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,8 +43,6 @@ TEST_EXIT_PASSED = 0
|
|||||||
TEST_EXIT_FAILED = 1
|
TEST_EXIT_FAILED = 1
|
||||||
TEST_EXIT_SKIPPED = 77
|
TEST_EXIT_SKIPPED = 77
|
||||||
|
|
||||||
BITCOIND_PROC_WAIT_TIMEOUT = 60
|
|
||||||
|
|
||||||
class BitcoinTestFramework(object):
|
class BitcoinTestFramework(object):
|
||||||
"""Base class for a bitcoin test script.
|
"""Base class for a bitcoin test script.
|
||||||
|
|
||||||
@ -263,8 +261,7 @@ class BitcoinTestFramework(object):
|
|||||||
def stop_node(self, i):
|
def stop_node(self, i):
|
||||||
"""Stop a bitcoind test node"""
|
"""Stop a bitcoind test node"""
|
||||||
self.nodes[i].stop_node()
|
self.nodes[i].stop_node()
|
||||||
while not self.nodes[i].is_node_stopped():
|
self.nodes[i].wait_until_stopped()
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
def stop_nodes(self):
|
def stop_nodes(self):
|
||||||
"""Stop multiple bitcoind test nodes"""
|
"""Stop multiple bitcoind test nodes"""
|
||||||
@ -274,8 +271,7 @@ class BitcoinTestFramework(object):
|
|||||||
|
|
||||||
for node in self.nodes:
|
for node in self.nodes:
|
||||||
# Wait for nodes to stop
|
# Wait for nodes to stop
|
||||||
while not node.is_node_stopped():
|
node.wait_until_stopped()
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
def assert_start_raises_init_error(self, i, extra_args=None, expected_msg=None):
|
def assert_start_raises_init_error(self, i, extra_args=None, expected_msg=None):
|
||||||
with tempfile.SpooledTemporaryFile(max_size=2**16) as log_stderr:
|
with tempfile.SpooledTemporaryFile(max_size=2**16) as log_stderr:
|
||||||
|
@ -17,9 +17,12 @@ from .util import (
|
|||||||
assert_equal,
|
assert_equal,
|
||||||
get_rpc_proxy,
|
get_rpc_proxy,
|
||||||
rpc_url,
|
rpc_url,
|
||||||
|
wait_until,
|
||||||
)
|
)
|
||||||
from .authproxy import JSONRPCException
|
from .authproxy import JSONRPCException
|
||||||
|
|
||||||
|
BITCOIND_PROC_WAIT_TIMEOUT = 60
|
||||||
|
|
||||||
class TestNode():
|
class TestNode():
|
||||||
"""A class for representing a bitcoind node under test.
|
"""A class for representing a bitcoind node under test.
|
||||||
|
|
||||||
@ -125,14 +128,20 @@ class TestNode():
|
|||||||
if not self.running:
|
if not self.running:
|
||||||
return True
|
return True
|
||||||
return_code = self.process.poll()
|
return_code = self.process.poll()
|
||||||
if return_code is not None:
|
if return_code is None:
|
||||||
# process has stopped. Assert that it didn't return an error code.
|
return False
|
||||||
assert_equal(return_code, 0)
|
|
||||||
self.running = False
|
# process has stopped. Assert that it didn't return an error code.
|
||||||
self.process = None
|
assert_equal(return_code, 0)
|
||||||
self.log.debug("Node stopped")
|
self.running = False
|
||||||
return True
|
self.process = None
|
||||||
return False
|
self.rpc_connected = False
|
||||||
|
self.rpc = None
|
||||||
|
self.log.debug("Node stopped")
|
||||||
|
return True
|
||||||
|
|
||||||
|
def wait_until_stopped(self, timeout=BITCOIND_PROC_WAIT_TIMEOUT):
|
||||||
|
wait_until(self.is_node_stopped, timeout=timeout)
|
||||||
|
|
||||||
def node_encrypt_wallet(self, passphrase):
|
def node_encrypt_wallet(self, passphrase):
|
||||||
""""Encrypts the wallet.
|
""""Encrypts the wallet.
|
||||||
@ -140,10 +149,7 @@ class TestNode():
|
|||||||
This causes bitcoind to shutdown, so this method takes
|
This causes bitcoind to shutdown, so this method takes
|
||||||
care of cleaning up resources."""
|
care of cleaning up resources."""
|
||||||
self.encryptwallet(passphrase)
|
self.encryptwallet(passphrase)
|
||||||
while not self.is_node_stopped():
|
self.wait_until_stopped()
|
||||||
time.sleep(0.1)
|
|
||||||
self.rpc = None
|
|
||||||
self.rpc_connected = False
|
|
||||||
|
|
||||||
class TestNodeCLI():
|
class TestNodeCLI():
|
||||||
"""Interface to bitcoin-cli for an individual node"""
|
"""Interface to bitcoin-cli for an individual node"""
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from test_framework.test_framework import BitcoinTestFramework, BITCOIND_PROC_WAIT_TIMEOUT
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import (
|
from test_framework.util import (
|
||||||
assert_equal,
|
assert_equal,
|
||||||
assert_raises_jsonrpc,
|
assert_raises_jsonrpc,
|
||||||
|
Loading…
Reference in New Issue
Block a user