Merge #18474: test: check that peer is connected when calling sync_*

fac3716b09bb9ee121db629873d9694a95cae942 test: check that peer is connected when calling sync_* (MarcoFalke)

Pull request description:

  Without a connection there is no way to sync, so we can fail early and don't have to wait for the timeout

ACKs for top commit:
  jonatack:
    ACK fac3716b09bb9

Tree-SHA512: 12f771473c23e152dae4bfb201fadb2c3530cf439de64fea07d048734614543080a5d05c9c36e6e398c6a69c8279f609d34706599571814172a11bcfbea4a3b9
This commit is contained in:
MarcoFalke 2020-03-31 16:34:54 -04:00
commit d2db25233c
No known key found for this signature in database
GPG Key ID: CE2B75697E69A548

View File

@ -393,6 +393,7 @@ def connect_nodes(from_connection, node_num):
# with transaction relaying # with transaction relaying
wait_until(lambda: all(peer['version'] != 0 for peer in from_connection.getpeerinfo())) wait_until(lambda: all(peer['version'] != 0 for peer in from_connection.getpeerinfo()))
def sync_blocks(rpc_connections, *, wait=1, timeout=60): def sync_blocks(rpc_connections, *, wait=1, timeout=60):
""" """
Wait until everybody has the same tip. Wait until everybody has the same tip.
@ -406,9 +407,12 @@ def sync_blocks(rpc_connections, *, wait=1, timeout=60):
best_hash = [x.getbestblockhash() for x in rpc_connections] best_hash = [x.getbestblockhash() for x in rpc_connections]
if best_hash.count(best_hash[0]) == len(rpc_connections): if best_hash.count(best_hash[0]) == len(rpc_connections):
return return
# Check that each peer has at least one connection
assert (all([len(x.getpeerinfo()) for x in rpc_connections]))
time.sleep(wait) time.sleep(wait)
raise AssertionError("Block sync timed out:{}".format("".join("\n {!r}".format(b) for b in best_hash))) raise AssertionError("Block sync timed out:{}".format("".join("\n {!r}".format(b) for b in best_hash)))
def sync_mempools(rpc_connections, *, wait=1, timeout=60, flush_scheduler=True): def sync_mempools(rpc_connections, *, wait=1, timeout=60, flush_scheduler=True):
""" """
Wait until everybody has the same transactions in their memory Wait until everybody has the same transactions in their memory
@ -422,6 +426,8 @@ def sync_mempools(rpc_connections, *, wait=1, timeout=60, flush_scheduler=True):
for r in rpc_connections: for r in rpc_connections:
r.syncwithvalidationinterfacequeue() r.syncwithvalidationinterfacequeue()
return return
# Check that each peer has at least one connection
assert (all([len(x.getpeerinfo()) for x in rpc_connections]))
time.sleep(wait) time.sleep(wait)
raise AssertionError("Mempool sync timed out:{}".format("".join("\n {!r}".format(m) for m in pool))) raise AssertionError("Mempool sync timed out:{}".format("".join("\n {!r}".format(m) for m in pool)))