Browse Source

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

0.13
MarcoFalke 9 years ago
parent
commit
faa4f22342
  1. 124
      qa/pull-tester/rpc-tests.py

124
qa/pull-tester/rpc-tests.py

@ -41,15 +41,6 @@ if 'ENABLE_UTILS' not in vars():
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
#Create a set to store arguments and create the passOn string #Create a set to store arguments and create the passOn string
@ -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)
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) 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):

Loading…
Cancel
Save