[qa] Use single cache dir for chains
This commit is contained in:
parent
dbb41d1082
commit
b25a63593e
|
@ -105,9 +105,10 @@ linux-coverage-build
|
|||
linux-build
|
||||
win32-build
|
||||
qa/pull-tester/run-bitcoind-for-test.sh
|
||||
qa/pull-tester/tests-config.sh
|
||||
qa/pull-tester/cache/*
|
||||
qa/pull-tester/tests_config.py
|
||||
qa/pull-tester/test.*/*
|
||||
qa/tmp
|
||||
qa/cache/*
|
||||
|
||||
!src/leveldb*/Makefile
|
||||
|
||||
|
|
|
@ -229,6 +229,7 @@ def runtests():
|
|||
coverage = RPCCoverage()
|
||||
print("Initializing coverage directory at %s\n" % coverage.dir)
|
||||
flags = ["--srcdir=%s/src" % BUILDDIR] + passon_args
|
||||
flags.append("--cachedir=%s/qa/cache" % BUILDDIR)
|
||||
if coverage:
|
||||
flags.append(coverage.flag)
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ class BitcoinTestFramework(object):
|
|||
if self.setup_clean_chain:
|
||||
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
|
||||
else:
|
||||
initialize_chain(self.options.tmpdir, self.num_nodes)
|
||||
initialize_chain(self.options.tmpdir, self.num_nodes, self.options.cachedir)
|
||||
|
||||
def setup_nodes(self):
|
||||
return start_nodes(self.num_nodes, self.options.tmpdir)
|
||||
|
@ -108,6 +108,8 @@ class BitcoinTestFramework(object):
|
|||
help="Don't stop bitcoinds after the test execution")
|
||||
parser.add_option("--srcdir", dest="srcdir", default="../../src",
|
||||
help="Source directory containing bitcoind/bitcoin-cli (default: %default)")
|
||||
parser.add_option("--cachedir", dest="cachedir", default=os.path.normpath(os.path.dirname(os.path.realpath(__file__))+"/../../cache"),
|
||||
help="Directory for caching pregenerated datadirs")
|
||||
parser.add_option("--tmpdir", dest="tmpdir", default=tempfile.mkdtemp(prefix="test"),
|
||||
help="Root directory for datadirs")
|
||||
parser.add_option("--tracerpc", dest="trace_rpc", default=False, action="store_true",
|
||||
|
|
|
@ -213,7 +213,7 @@ def wait_for_bitcoind_start(process, url, i):
|
|||
raise # unknown JSON RPC exception
|
||||
time.sleep(0.25)
|
||||
|
||||
def initialize_chain(test_dir, num_nodes):
|
||||
def initialize_chain(test_dir, num_nodes, cachedir):
|
||||
"""
|
||||
Create a cache of a 200-block-long chain (with wallet) for MAX_NODES
|
||||
Afterward, create num_nodes copies from the cache
|
||||
|
@ -235,15 +235,15 @@ def initialize_chain(test_dir, num_nodes):
|
|||
# default). Therefore, if the logic between the completion of any two
|
||||
# adjacent calls to `generate` within a test takes longer than 2.5 minutes,
|
||||
# the excess will subtract from the slack.
|
||||
if os.path.isdir(os.path.join("cache", "node0")):
|
||||
if os.stat("cache").st_mtime + (60 * 60) < time.time():
|
||||
if os.path.isdir(os.path.join(cachedir, "node0")):
|
||||
if os.stat(cachedir).st_mtime + (60 * 60) < time.time():
|
||||
print("initialize_chain(): Removing stale cache")
|
||||
shutil.rmtree("cache")
|
||||
shutil.rmtree(cachedir)
|
||||
|
||||
assert num_nodes <= MAX_NODES
|
||||
create_cache = False
|
||||
for i in range(MAX_NODES):
|
||||
if not os.path.isdir(os.path.join('cache', 'node'+str(i))):
|
||||
if not os.path.isdir(os.path.join(cachedir, 'node'+str(i))):
|
||||
create_cache = True
|
||||
break
|
||||
|
||||
|
@ -251,12 +251,12 @@ def initialize_chain(test_dir, num_nodes):
|
|||
|
||||
#find and delete old cache directories if any exist
|
||||
for i in range(MAX_NODES):
|
||||
if os.path.isdir(os.path.join("cache","node"+str(i))):
|
||||
shutil.rmtree(os.path.join("cache","node"+str(i)))
|
||||
if os.path.isdir(os.path.join(cachedir,"node"+str(i))):
|
||||
shutil.rmtree(os.path.join(cachedir,"node"+str(i)))
|
||||
|
||||
# Create cache directories, run bitcoinds:
|
||||
for i in range(MAX_NODES):
|
||||
datadir=initialize_datadir("cache", i)
|
||||
datadir=initialize_datadir(cachedir, i)
|
||||
args = [ os.getenv("BITCOIND", "bitcoind"), "-keypool=1", "-datadir="+datadir, "-discover=0" ]
|
||||
args.extend([
|
||||
'-nuparams=5ba81b19:1', # Overwinter
|
||||
|
@ -303,13 +303,13 @@ def initialize_chain(test_dir, num_nodes):
|
|||
stop_nodes(rpcs)
|
||||
wait_bitcoinds()
|
||||
for i in range(MAX_NODES):
|
||||
os.remove(log_filename("cache", i, "debug.log"))
|
||||
os.remove(log_filename("cache", i, "db.log"))
|
||||
os.remove(log_filename("cache", i, "peers.dat"))
|
||||
os.remove(log_filename("cache", i, "fee_estimates.dat"))
|
||||
os.remove(log_filename(cachedir, i, "debug.log"))
|
||||
os.remove(log_filename(cachedir, i, "db.log"))
|
||||
os.remove(log_filename(cachedir, i, "peers.dat"))
|
||||
os.remove(log_filename(cachedir, i, "fee_estimates.dat"))
|
||||
|
||||
for i in range(num_nodes):
|
||||
from_dir = os.path.join("cache", "node"+str(i))
|
||||
from_dir = os.path.join(cachedir, "node"+str(i))
|
||||
to_dir = os.path.join(test_dir, "node"+str(i))
|
||||
shutil.copytree(from_dir, to_dir)
|
||||
initialize_datadir(test_dir, i) # Overwrite port/rpcport in zcash.conf
|
||||
|
|
Loading…
Reference in New Issue