mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 15:04:44 +01:00
Merge bitcoin/bitcoin#29070: test: add TestNode wait_until helper
bf0f7dbec6
test: add TestNode wait_until helper (Nikodemas Tuckus) Pull request description: Add `wait_until` method that wraps the `wait_until_helper_internal` call. Closes https://github.com/bitcoin/bitcoin/issues/29029. ACKs for top commit: maflcko: lgtm ACKbf0f7dbec6
mohamedawnallah: LGTM! Code Review ACKbf0f7dbec6
achow101: ACKbf0f7dbec6
BrandonOdiwuor: Code review ACKbf0f7dbec6
Tree-SHA512: 05aab589c814f51a14e1483eb57c10b88385714e3eb2d0973c0ee2877f2b963a76837f34215fe2e6bd1c8d735f5af7dd2098331e1eda28587f39e513bc6e1a6a
This commit is contained in:
commit
9860471708
1 changed files with 7 additions and 5 deletions
|
@ -260,7 +260,7 @@ class TestNode():
|
||||||
if self.version_is_at_least(190000):
|
if self.version_is_at_least(190000):
|
||||||
# getmempoolinfo.loaded is available since commit
|
# getmempoolinfo.loaded is available since commit
|
||||||
# bb8ae2c (version 0.19.0)
|
# bb8ae2c (version 0.19.0)
|
||||||
wait_until_helper_internal(lambda: rpc.getmempoolinfo()['loaded'], timeout_factor=self.timeout_factor)
|
self.wait_until(lambda: rpc.getmempoolinfo()['loaded'])
|
||||||
# Wait for the node to finish reindex, block import, and
|
# Wait for the node to finish reindex, block import, and
|
||||||
# loading the mempool. Usually importing happens fast or
|
# loading the mempool. Usually importing happens fast or
|
||||||
# even "immediate" when the node is started. However, there
|
# even "immediate" when the node is started. However, there
|
||||||
|
@ -414,7 +414,7 @@ class TestNode():
|
||||||
|
|
||||||
def wait_until_stopped(self, *, timeout=BITCOIND_PROC_WAIT_TIMEOUT, expect_error=False, **kwargs):
|
def wait_until_stopped(self, *, timeout=BITCOIND_PROC_WAIT_TIMEOUT, expect_error=False, **kwargs):
|
||||||
expected_ret_code = 1 if expect_error else 0 # Whether node shutdown return EXIT_FAILURE or EXIT_SUCCESS
|
expected_ret_code = 1 if expect_error else 0 # Whether node shutdown return EXIT_FAILURE or EXIT_SUCCESS
|
||||||
wait_until_helper_internal(lambda: self.is_node_stopped(expected_ret_code=expected_ret_code, **kwargs), timeout=timeout, timeout_factor=self.timeout_factor)
|
self.wait_until(lambda: self.is_node_stopped(expected_ret_code=expected_ret_code, **kwargs), timeout=timeout)
|
||||||
|
|
||||||
def replace_in_config(self, replacements):
|
def replace_in_config(self, replacements):
|
||||||
"""
|
"""
|
||||||
|
@ -534,8 +534,7 @@ class TestNode():
|
||||||
|
|
||||||
initial_peer_id = get_highest_peer_id()
|
initial_peer_id = get_highest_peer_id()
|
||||||
yield
|
yield
|
||||||
wait_until_helper_internal(lambda: get_highest_peer_id() > initial_peer_id,
|
self.wait_until(lambda: get_highest_peer_id() > initial_peer_id, timeout=timeout)
|
||||||
timeout=timeout, timeout_factor=self.timeout_factor)
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def profile_with_perf(self, profile_name: str):
|
def profile_with_perf(self, profile_name: str):
|
||||||
|
@ -747,7 +746,7 @@ class TestNode():
|
||||||
p.peer_disconnect()
|
p.peer_disconnect()
|
||||||
del self.p2ps[:]
|
del self.p2ps[:]
|
||||||
|
|
||||||
wait_until_helper_internal(lambda: self.num_test_p2p_connections() == 0, timeout_factor=self.timeout_factor)
|
self.wait_until(lambda: self.num_test_p2p_connections() == 0)
|
||||||
|
|
||||||
def bumpmocktime(self, seconds):
|
def bumpmocktime(self, seconds):
|
||||||
"""Fast forward using setmocktime to self.mocktime + seconds. Requires setmocktime to have
|
"""Fast forward using setmocktime to self.mocktime + seconds. Requires setmocktime to have
|
||||||
|
@ -756,6 +755,9 @@ class TestNode():
|
||||||
self.mocktime += seconds
|
self.mocktime += seconds
|
||||||
self.setmocktime(self.mocktime)
|
self.setmocktime(self.mocktime)
|
||||||
|
|
||||||
|
def wait_until(self, test_function, timeout=60):
|
||||||
|
return wait_until_helper_internal(test_function, timeout=timeout, timeout_factor=self.timeout_factor)
|
||||||
|
|
||||||
|
|
||||||
class TestNodeCLIAttr:
|
class TestNodeCLIAttr:
|
||||||
def __init__(self, cli, command):
|
def __init__(self, cli, command):
|
||||||
|
|
Loading…
Add table
Reference in a new issue