[qa] pull-tester: Exit early when no tests are run

This commit is contained in:
MarcoFalke 2016-04-09 22:17:52 +02:00
parent fa05e22e91
commit faa4f22342

View File

@ -40,15 +40,6 @@ if 'ENABLE_UTILS' not in vars():
ENABLE_UTILS=0 ENABLE_UTILS=0
if 'ENABLE_ZMQ' not in vars(): if 'ENABLE_ZMQ' not in vars():
ENABLE_ZMQ=0 ENABLE_ZMQ=0
# python-zmq may not be installed. Handle this gracefully and with some helpful info
if ENABLE_ZMQ:
try:
import zmq
except ImportError as e:
print("WARNING: \"import zmq\" failed. Set ENABLE_ZMQ=0 or " \
"to run zmq tests, see dependency info in /qa/README.md.")
raise e
ENABLE_COVERAGE=0 ENABLE_COVERAGE=0
@ -76,11 +67,24 @@ if "BITCOIND" not in os.environ:
if "BITCOINCLI" not in os.environ: if "BITCOINCLI" not in os.environ:
os.environ["BITCOINCLI"] = buildDir + '/src/bitcoin-cli' + EXEEXT os.environ["BITCOINCLI"] = buildDir + '/src/bitcoin-cli' + EXEEXT
#Disable Windows tests by default
if EXEEXT == ".exe" and "-win" not in opts: if EXEEXT == ".exe" and "-win" not in opts:
print "Win tests currently disabled. Use -win option to enable" # https://github.com/bitcoin/bitcoin/commit/d52802551752140cf41f0d9a225a43e84404d3e9
print "Win tests currently disabled by default. Use -win option to enable"
sys.exit(0) sys.exit(0)
if not (ENABLE_WALLET == 1 and ENABLE_UTILS == 1 and ENABLE_BITCOIND == 1):
print "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
sys.exit(0)
# python-zmq may not be installed. Handle this gracefully and with some helpful info
if ENABLE_ZMQ:
try:
import zmq
except ImportError as e:
print("WARNING: \"import zmq\" failed. Set ENABLE_ZMQ=0 or " \
"to run zmq tests, see dependency info in /qa/README.md.")
raise e
#Tests #Tests
testScripts = [ testScripts = [
'bip68-112-113-p2p.py', 'bip68-112-113-p2p.py',
@ -119,6 +123,9 @@ testScripts = [
'p2p-versionbits-warning.py', 'p2p-versionbits-warning.py',
'importprunedfunds.py', 'importprunedfunds.py',
] ]
if ENABLE_ZMQ:
testScripts.append('zmq_test.py')
testScriptsExt = [ testScriptsExt = [
'bip9-softforks.py', 'bip9-softforks.py',
'bip65-cltv.py', 'bip65-cltv.py',
@ -143,11 +150,6 @@ testScriptsExt = [
'pruning.py', # leave pruning last as it takes a REALLY long time 'pruning.py', # leave pruning last as it takes a REALLY long time
] ]
#Enable ZMQ tests
if ENABLE_ZMQ == 1:
testScripts.append('zmq_test.py')
def runtests(): def runtests():
coverage = None coverage = None
@ -155,53 +157,49 @@ def runtests():
coverage = RPCCoverage() coverage = RPCCoverage()
print("Initializing coverage directory at %s\n" % coverage.dir) print("Initializing coverage directory at %s\n" % coverage.dir)
if(ENABLE_WALLET == 1 and ENABLE_UTILS == 1 and ENABLE_BITCOIND == 1): rpcTestDir = buildDir + '/qa/rpc-tests/'
rpcTestDir = buildDir + '/qa/rpc-tests/' run_extended = '-extended' in opts
run_extended = '-extended' in opts cov_flag = coverage.flag if coverage else ''
cov_flag = coverage.flag if coverage else '' flags = " --srcdir %s/src %s %s" % (buildDir, cov_flag, passOn)
flags = " --srcdir %s/src %s %s" % (buildDir, cov_flag, passOn)
#Run Tests #Run Tests
for i in range(len(testScripts)): for i in range(len(testScripts)):
if (len(opts) == 0 if (len(opts) == 0
or (len(opts) == 1 and "-win" in opts ) or (len(opts) == 1 and "-win" in opts )
or run_extended or run_extended
or testScripts[i] in opts or testScripts[i] in opts
or re.sub(".py$", "", testScripts[i]) in opts ): or re.sub(".py$", "", testScripts[i]) in opts ):
print("Running testscript %s%s%s ..." % (bold[1], testScripts[i], bold[0])) print("Running testscript %s%s%s ..." % (bold[1], testScripts[i], bold[0]))
time0 = time.time() time0 = time.time()
subprocess.check_call( subprocess.check_call(
rpcTestDir + testScripts[i] + flags, shell=True) rpcTestDir + testScripts[i] + flags, shell=True)
print("Duration: %s s\n" % (int(time.time() - time0))) print("Duration: %s s\n" % (int(time.time() - time0)))
# exit if help is called so we print just one set of # exit if help is called so we print just one set of
# instructions # instructions
p = re.compile(" -h| --help") p = re.compile(" -h| --help")
if p.match(passOn): if p.match(passOn):
sys.exit(0) sys.exit(0)
# Run Extended Tests # Run Extended Tests
for i in range(len(testScriptsExt)): for i in range(len(testScriptsExt)):
if (run_extended or testScriptsExt[i] in opts if (run_extended or testScriptsExt[i] in opts
or re.sub(".py$", "", testScriptsExt[i]) in opts): or re.sub(".py$", "", testScriptsExt[i]) in opts):
print( print(
"Running 2nd level testscript " "Running 2nd level testscript "
+ "%s%s%s ..." % (bold[1], testScriptsExt[i], bold[0])) + "%s%s%s ..." % (bold[1], testScriptsExt[i], bold[0]))
time0 = time.time() time0 = time.time()
subprocess.check_call( subprocess.check_call(
rpcTestDir + testScriptsExt[i] + flags, shell=True) rpcTestDir + testScriptsExt[i] + flags, shell=True)
print("Duration: %s s\n" % (int(time.time() - time0))) print("Duration: %s s\n" % (int(time.time() - time0)))
if coverage: if coverage:
coverage.report_rpc_coverage() coverage.report_rpc_coverage()
print("Cleaning up coverage data") print("Cleaning up coverage data")
coverage.cleanup() coverage.cleanup()
else:
print "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
class RPCCoverage(object): class RPCCoverage(object):