mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
Merge #13837: qa: Extract rpc_timewait as test param
fa5b440971a0dfdd64c1b86748a573fcd7dc65d3 qa: Extract rpc_timewait as test param (MarcoFalke) Pull request description: Also increase it for wallet_dump and wallet_groups Tree-SHA512: 7367bc584228bda3010c453713a1505c54a8ef3d116be47dab9934d30594089dfeb27ffa862f7517fd0ec8b5dc07f4904d67ef2a53dd284cbe2a58982e410e2b
This commit is contained in:
parent
4bbf00a6e4
commit
d33dd31032
@ -74,14 +74,14 @@ class FullBlockTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 1
|
||||
self.setup_clean_chain = True
|
||||
# Very large reorgs cause cs_main to be held for a very long time in ActivateBestChainStep,
|
||||
# which causes RPC to hang, so we need to increase RPC timeouts
|
||||
self.rpc_timeout = 180
|
||||
# Must set '-dip3params=2000:2000' to create pre-dip3 blocks only
|
||||
self.extra_args = [['-dip3params=2000:2000']]
|
||||
|
||||
def setup_nodes(self):
|
||||
# Very large reorgs cause cs_main to be held for a very long time in ActivateBestChainStep,
|
||||
# which causes RPC to hang, so we need to increase RPC timeouts
|
||||
# TODO remove this when bitcoin#13837 gets backported and change it to use self.rpc_timeout
|
||||
self.add_nodes(self.num_nodes, self.extra_args, timewait=180)
|
||||
self.add_nodes(self.num_nodes, self.extra_args)
|
||||
self.start_nodes()
|
||||
|
||||
def run_test(self):
|
||||
|
@ -45,6 +45,8 @@ class ChainstateWriteCrashTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.num_nodes = 4
|
||||
self.setup_clean_chain = False
|
||||
# Need a bit of extra time for the nodes to start up for this test
|
||||
self.rpc_timewait = 90
|
||||
|
||||
# Set -maxmempool=0 to turn off mempool memory sharing with dbcache
|
||||
# Set -rpcservertimeout=900 to reduce socket disconnects in this
|
||||
@ -66,8 +68,7 @@ class ChainstateWriteCrashTest(BitcoinTestFramework):
|
||||
self.crashed_on_restart = 0 # Track count of crashes during recovery
|
||||
|
||||
def setup_network(self):
|
||||
# Need a bit of extra time for the nodes to start up for this test
|
||||
self.add_nodes(self.num_nodes, extra_args=self.extra_args, timewait=90)
|
||||
self.add_nodes(self.num_nodes, extra_args=self.extra_args)
|
||||
self.start_nodes()
|
||||
# Leave them unconnected, we'll use submitblock directly in this test
|
||||
|
||||
|
@ -28,6 +28,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 6
|
||||
self.rpc_timewait = 900
|
||||
|
||||
# Create nodes 0 and 1 to mine.
|
||||
# Create node 2 to test pruning.
|
||||
@ -54,7 +55,7 @@ class PruneTest(BitcoinTestFramework):
|
||||
self.sync_blocks(self.nodes[0:5])
|
||||
|
||||
def setup_nodes(self):
|
||||
self.add_nodes(self.num_nodes, self.extra_args, timewait=900)
|
||||
self.add_nodes(self.num_nodes, self.extra_args)
|
||||
self.start_nodes()
|
||||
|
||||
def create_big_chain(self):
|
||||
|
@ -107,6 +107,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
self.nodes = []
|
||||
self.network_thread = None
|
||||
self.mocktime = 0
|
||||
self.rpc_timewait = 60 # Wait for up to 60 seconds for the RPC server to respond
|
||||
self.supports_cli = False
|
||||
self.bind_to_localhost_only = True
|
||||
self.extra_args_from_options = []
|
||||
@ -291,7 +292,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
|
||||
# Public helper methods. These can be accessed by the subclass test scripts.
|
||||
|
||||
def add_nodes(self, num_nodes, extra_args=None, rpchost=None, timewait=None, binary=None):
|
||||
def add_nodes(self, num_nodes, extra_args=None, *, rpchost=None, binary=None):
|
||||
"""Instantiate TestNode objects"""
|
||||
if self.bind_to_localhost_only:
|
||||
extra_confs = [["bind=127.0.0.1"]] * num_nodes
|
||||
@ -306,7 +307,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
assert_equal(len(binary), num_nodes)
|
||||
old_num_nodes = len(self.nodes)
|
||||
for i in range(num_nodes):
|
||||
self.nodes.append(TestNode(old_num_nodes + i, get_datadir_path(self.options.tmpdir, old_num_nodes + i), self.extra_args_from_options, chain=self.chain, rpchost=rpchost, timewait=timewait, bitcoind=binary[i], bitcoin_cli=self.options.bitcoincli, mocktime=self.mocktime, coverage_dir=self.options.coveragedir, extra_conf=extra_confs[i], extra_args=extra_args[i], use_cli=self.options.usecli))
|
||||
self.nodes.append(TestNode(old_num_nodes + i, get_datadir_path(self.options.tmpdir, old_num_nodes + i), self.extra_args_from_options, chain=self.chain, rpchost=rpchost, timewait=self.rpc_timewait, bitcoind=binary[i], bitcoin_cli=self.options.bitcoincli, mocktime=self.mocktime, coverage_dir=self.options.coveragedir, extra_conf=extra_confs[i], extra_args=extra_args[i], use_cli=self.options.usecli))
|
||||
|
||||
def start_node(self, i, *args, **kwargs):
|
||||
"""Start a dashd"""
|
||||
@ -477,7 +478,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
args.append("-connect=127.0.0.1:" + str(p2p_port(0)))
|
||||
if extra_args is not None:
|
||||
args.extend(extra_args)
|
||||
self.nodes.append(TestNode(i, get_datadir_path(self.options.cachedir, i), chain=self.chain, extra_conf=["bind=127.0.0.1"], extra_args=[], extra_args_from_options=self.extra_args_from_options, rpchost=None, timewait=None, bitcoind=self.options.bitcoind, bitcoin_cli=self.options.bitcoincli, mocktime=self.mocktime, coverage_dir=None))
|
||||
self.nodes.append(TestNode(i, get_datadir_path(self.options.cachedir, i), chain=self.chain, extra_conf=["bind=127.0.0.1"], extra_args=[], extra_args_from_options=self.extra_args_from_options, rpchost=None, timewait=self.rpc_timewait, bitcoind=self.options.bitcoind, bitcoin_cli=self.options.bitcoincli, mocktime=self.mocktime, coverage_dir=None))
|
||||
self.nodes[i].args = args
|
||||
self.start_node(i)
|
||||
|
||||
|
@ -60,18 +60,14 @@ class TestNode():
|
||||
To make things easier for the test writer, any unrecognised messages will
|
||||
be dispatched to the RPC connection."""
|
||||
|
||||
def __init__(self, i, datadir, extra_args_from_options, chain, rpchost, timewait, bitcoind, bitcoin_cli, mocktime, coverage_dir, extra_conf=None, extra_args=None, use_cli=False):
|
||||
def __init__(self, i, datadir, extra_args_from_options, *, chain, rpchost, timewait, bitcoind, bitcoin_cli, mocktime, coverage_dir, extra_conf=None, extra_args=None, use_cli=False):
|
||||
self.index = i
|
||||
self.datadir = datadir
|
||||
self.chain = chain
|
||||
self.stdout_dir = os.path.join(self.datadir, "stdout")
|
||||
self.stderr_dir = os.path.join(self.datadir, "stderr")
|
||||
self.rpchost = rpchost
|
||||
if timewait:
|
||||
self.rpc_timeout = timewait
|
||||
else:
|
||||
# Wait for up to 60 seconds for the RPC server to respond
|
||||
self.rpc_timeout = 60
|
||||
self.rpc_timeout = timewait
|
||||
self.rpc_timeout *= Options.timeout_scale
|
||||
self.binary = bitcoind
|
||||
self.coverage_dir = coverage_dir
|
||||
|
@ -73,6 +73,7 @@ class WalletDumpTest(BitcoinTestFramework):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 1
|
||||
self.extra_args = [["-keypool=90", "-usehd=1"]]
|
||||
self.rpc_timeout = 120
|
||||
|
||||
def setup_network(self):
|
||||
# TODO remove this when usehd=1 becomes the default
|
||||
@ -81,14 +82,10 @@ class WalletDumpTest(BitcoinTestFramework):
|
||||
self.options.cachedir = os.path.join(self.options.cachedir, 'hd')
|
||||
self._initialize_chain(extra_args=self.extra_args[0])
|
||||
self.set_cache_mocktime()
|
||||
# Use 1 minute timeout because the initial getnewaddress RPC can take
|
||||
# longer than the default 30 seconds due to an expensive
|
||||
# CWallet::TopUpKeyPool call, and the encryptwallet RPC made later in
|
||||
# the test often takes even longer.
|
||||
self.add_nodes(self.num_nodes, extra_args=self.extra_args, timewait=60)
|
||||
self.add_nodes(self.num_nodes, extra_args=self.extra_args)
|
||||
self.start_nodes()
|
||||
|
||||
def run_test (self):
|
||||
def run_test(self):
|
||||
wallet_unenc_dump = os.path.join(self.nodes[0].datadir, "wallet.unencrypted.dump")
|
||||
wallet_enc_dump = os.path.join(self.nodes[0].datadir, "wallet.encrypted.dump")
|
||||
|
||||
|
@ -22,6 +22,7 @@ class WalletGroupTest(BitcoinTestFramework):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 3
|
||||
self.extra_args = [[], [], ['-avoidpartialspends']]
|
||||
self.rpc_timewait = 120
|
||||
|
||||
def run_test (self):
|
||||
# Mine some coins
|
||||
|
Loading…
Reference in New Issue
Block a user