diff options
author | MarcoFalke <falke.marco@gmail.com> | 2020-11-04 17:16:38 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2020-11-04 17:16:41 +0100 |
commit | ed9f5477502e5856eba742656e8fc0fcf7bb053b (patch) | |
tree | b30ae1724d6cc7f25dcf14d25e65ac51b13aaf37 | |
parent | 1209b6c692c14dc1435d653f3c032ae22a98af8e (diff) | |
parent | fa2ecadd0d3283a89d27772dc0275e76277ae17e (diff) | |
download | bitcoin-ed9f5477502e5856eba742656e8fc0fcf7bb053b.tar.xz |
Merge #20299: test: Fix intermittent rpc_net issue
fa2ecadd0d3283a89d27772dc0275e76277ae17e test: Fix intermittent rpc_net issue (MarcoFalke)
Pull request description:
The test fails because getpeerinfo and getnettotals are not synchronised, so a `wait_until` is needed for each RPC (separately).
Fixes https://cirrus-ci.com/task/4663366629195776?command=ci#L5034
ACKs for top commit:
jnewbery:
utACK fa2ecadd0d3283a89d27772dc0275e76277ae17e
Tree-SHA512: 5ea7128801aab8dbe3d9e6737545ff4ee770e4a9c5a2096ba2339a688424f1879ccba6bf8bcb219983acf86eb28af06fc629586613e7fe28aeffadd2c98633e8
-rwxr-xr-x | test/functional/rpc_net.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/test/functional/rpc_net.py b/test/functional/rpc_net.py index 034827b2b8..2efd090733 100755 --- a/test/functional/rpc_net.py +++ b/test/functional/rpc_net.py @@ -21,7 +21,6 @@ from test_framework.test_framework import BitcoinTestFramework from test_framework.util import ( assert_approx, assert_equal, - assert_greater_than_or_equal, assert_greater_than, assert_raises_rpc_error, p2p_port, @@ -114,10 +113,10 @@ class NetTest(BitcoinTestFramework): self.wait_until(lambda: (self.nodes[0].getnettotals()['totalbytessent'] >= net_totals_before['totalbytessent'] + 32 * 2), timeout=1) self.wait_until(lambda: (self.nodes[0].getnettotals()['totalbytesrecv'] >= net_totals_before['totalbytesrecv'] + 32 * 2), timeout=1) - peer_info_after = self.nodes[0].getpeerinfo() - for before, after in zip(peer_info_before, peer_info_after): - assert_greater_than_or_equal(after['bytesrecv_per_msg'].get('pong', 0), before['bytesrecv_per_msg'].get('pong', 0) + 32) - assert_greater_than_or_equal(after['bytessent_per_msg'].get('ping', 0), before['bytessent_per_msg'].get('ping', 0) + 32) + for peer_before in peer_info_before: + peer_after = lambda: next(p for p in self.nodes[0].getpeerinfo() if p['id'] == peer_before['id']) + self.wait_until(lambda: peer_after()['bytesrecv_per_msg'].get('pong', 0) >= peer_before['bytesrecv_per_msg'].get('pong', 0) + 32, timeout=1) + self.wait_until(lambda: peer_after()['bytessent_per_msg'].get('ping', 0) >= peer_before['bytessent_per_msg'].get('ping', 0) + 32, timeout=1) def test_getnetworkinfo(self): self.log.info("Test getnetworkinfo") |