[qa] util: Remove unused sync_chain

pull/585/head
MarcoFalke 7 years ago
parent dcfe218626
commit fa1436c429
No known key found for this signature in database
GPG Key ID: CE2B75697E69A548

@ -8,7 +8,6 @@ from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import ( from test_framework.util import (
assert_equal, assert_equal,
connect_nodes_bi, connect_nodes_bi,
sync_chain,
sync_blocks, sync_blocks,
) )
@ -72,7 +71,7 @@ class PreciousTest(BitcoinTestFramework):
assert_equal(self.nodes[0].getbestblockhash(), hashC) assert_equal(self.nodes[0].getbestblockhash(), hashC)
self.log.info("Make Node1 prefer block C") self.log.info("Make Node1 prefer block C")
self.nodes[1].preciousblock(hashC) self.nodes[1].preciousblock(hashC)
sync_chain(self.nodes[0:2]) # wait because node 1 may not have downloaded hashC sync_blocks(self.nodes[0:2]) # wait because node 1 may not have downloaded hashC
assert_equal(self.nodes[1].getbestblockhash(), hashC) assert_equal(self.nodes[1].getbestblockhash(), hashC)
self.log.info("Make Node1 prefer block G again") self.log.info("Make Node1 prefer block G again")
self.nodes[1].preciousblock(hashG) self.nodes[1].preciousblock(hashG)

@ -361,54 +361,29 @@ def sync_blocks(rpc_connections, *, wait=1, timeout=60):
one node already synced to the latest, stable tip, otherwise there's a one node already synced to the latest, stable tip, otherwise there's a
chance it might return before all nodes are stably synced. chance it might return before all nodes are stably synced.
""" """
# Use getblockcount() instead of waitforblockheight() to determine the stop_time = time.time() + timeout
# initial max height because the two RPCs look at different internal global while time.time() <= stop_time:
# variables (chainActive vs latestBlock) and the former gets updated
# earlier.
maxheight = max(x.getblockcount() for x in rpc_connections)
start_time = cur_time = time.time()
while cur_time <= start_time + timeout:
tips = [r.waitforblockheight(maxheight, int(wait * 1000)) for r in rpc_connections]
if all(t["height"] == maxheight for t in tips):
if all(t["hash"] == tips[0]["hash"] for t in tips):
return
raise AssertionError("Block sync failed, mismatched block hashes:{}".format(
"".join("\n {!r}".format(tip) for tip in tips)))
cur_time = time.time()
raise AssertionError("Block sync to height {} timed out:{}".format(
maxheight, "".join("\n {!r}".format(tip) for tip in tips)))
def sync_chain(rpc_connections, *, wait=1, timeout=60):
"""
Wait until everybody has the same best block
"""
while timeout > 0:
best_hash = [x.getbestblockhash() for x in rpc_connections] best_hash = [x.getbestblockhash() for x in rpc_connections]
if best_hash == [best_hash[0]] * len(best_hash): if best_hash.count(best_hash[0]) == len(rpc_connections):
return return
time.sleep(wait) time.sleep(wait)
timeout -= wait raise AssertionError("Block sync timed out:{}".format("".join("\n {!r}".format(b) for b in best_hash)))
raise AssertionError("Chain sync failed: Best block hashes don't match")
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
pools pools
""" """
while timeout > 0: stop_time = time.time() + timeout
pool = set(rpc_connections[0].getrawmempool()) while time.time() <= stop_time:
num_match = 1 pool = [set(r.getrawmempool()) for r in rpc_connections]
for i in range(1, len(rpc_connections)): if pool.count(pool[0]) == len(rpc_connections):
if set(rpc_connections[i].getrawmempool()) == pool:
num_match = num_match + 1
if num_match == len(rpc_connections):
if flush_scheduler: if flush_scheduler:
for r in rpc_connections: for r in rpc_connections:
r.syncwithvalidationinterfacequeue() r.syncwithvalidationinterfacequeue()
return return
time.sleep(wait) time.sleep(wait)
timeout -= wait raise AssertionError("Mempool sync timed out:{}".format("".join("\n {!r}".format(m) for m in pool)))
raise AssertionError("Mempool sync failed")
# Transaction/Block functions # Transaction/Block functions
############################# #############################

Loading…
Cancel
Save