Wladimir J. van der Laan
9 years ago
7 changed files with 139 additions and 98 deletions
@ -0,0 +1,118 @@ |
|||||||
|
#!/usr/bin/env python2 |
||||||
|
|
||||||
|
# Copyright (c) 2014 The Bitcoin Core developers |
||||||
|
# Distributed under the MIT software license, see the accompanying |
||||||
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php. |
||||||
|
|
||||||
|
# |
||||||
|
# Run Regression Test Suite |
||||||
|
# |
||||||
|
|
||||||
|
import os |
||||||
|
import sys |
||||||
|
import subprocess |
||||||
|
import re |
||||||
|
from tests_config import * |
||||||
|
from sets import Set |
||||||
|
|
||||||
|
#If imported values are not defined then set to zero (or disabled) |
||||||
|
if not vars().has_key('ENABLE_WALLET'): |
||||||
|
ENABLE_WALLET=0 |
||||||
|
if not vars().has_key('ENABLE_BITCOIND'): |
||||||
|
ENABLE_BITCOIND=0 |
||||||
|
if not vars().has_key('ENABLE_UTILS'): |
||||||
|
ENABLE_UTILS=0 |
||||||
|
if not vars().has_key('ENABLE_ZMQ'): |
||||||
|
ENABLE_ZMQ=0 |
||||||
|
|
||||||
|
#Create a set to store arguments and create the passOn string |
||||||
|
opts = Set() |
||||||
|
passOn = "" |
||||||
|
p = re.compile("^--") |
||||||
|
for i in range(1,len(sys.argv)): |
||||||
|
if (p.match(sys.argv[i]) or sys.argv[i] == "-h"): |
||||||
|
passOn += " " + sys.argv[i] |
||||||
|
else: |
||||||
|
opts.add(sys.argv[i]) |
||||||
|
|
||||||
|
#Set env vars |
||||||
|
buildDir = BUILDDIR |
||||||
|
os.environ["BITCOIND"] = buildDir + '/src/bitcoind' + EXEEXT |
||||||
|
os.environ["BITCOINCLI"] = buildDir + '/src/bitcoin-cli' + EXEEXT |
||||||
|
|
||||||
|
#Disable Windows tests by default |
||||||
|
if EXEEXT == ".exe" and "-win" not in opts: |
||||||
|
print "Win tests currently disabled. Use -win option to enable" |
||||||
|
sys.exit(0) |
||||||
|
|
||||||
|
#Tests |
||||||
|
testScripts = [ |
||||||
|
'wallet.py', |
||||||
|
'listtransactions.py', |
||||||
|
'mempool_resurrect_test.py', |
||||||
|
'txn_doublespend.py --mineblock', |
||||||
|
'txn_clone.py', |
||||||
|
'getchaintips.py', |
||||||
|
'rawtransactions.py', |
||||||
|
'rest.py', |
||||||
|
'mempool_spendcoinbase.py', |
||||||
|
'mempool_coinbase_spends.py', |
||||||
|
'httpbasics.py', |
||||||
|
'zapwallettxes.py', |
||||||
|
'proxy_test.py', |
||||||
|
'merkle_blocks.py', |
||||||
|
'fundrawtransaction.py', |
||||||
|
'signrawtransactions.py', |
||||||
|
'walletbackup.py', |
||||||
|
'nodehandling.py', |
||||||
|
'reindex.py', |
||||||
|
'decodescript.py', |
||||||
|
'p2p-fullblocktest.py', |
||||||
|
] |
||||||
|
testScriptsExt = [ |
||||||
|
'bipdersig-p2p.py', |
||||||
|
'bipdersig.py', |
||||||
|
'getblocktemplate_longpoll.py', |
||||||
|
'getblocktemplate_proposals.py', |
||||||
|
'txn_doublespend.py', |
||||||
|
'txn_clone.py --mineblock', |
||||||
|
'pruning.py', |
||||||
|
'forknotify.py', |
||||||
|
'invalidateblock.py', |
||||||
|
'keypool.py', |
||||||
|
'receivedby.py', |
||||||
|
'rpcbind_test.py', |
||||||
|
# 'script_test.py', |
||||||
|
'smartfees.py', |
||||||
|
'maxblocksinflight.py', |
||||||
|
'invalidblockrequest.py', |
||||||
|
# 'forknotify.py', |
||||||
|
'p2p-acceptblock.py', |
||||||
|
'mempool_packages.py', |
||||||
|
] |
||||||
|
|
||||||
|
#Enable ZMQ tests |
||||||
|
if ENABLE_ZMQ == 1: |
||||||
|
testScripts.append('zmq_test.py') |
||||||
|
|
||||||
|
if(ENABLE_WALLET == 1 and ENABLE_UTILS == 1 and ENABLE_BITCOIND == 1): |
||||||
|
rpcTestDir = buildDir + '/qa/rpc-tests/' |
||||||
|
#Run Tests |
||||||
|
for i in range(len(testScripts)): |
||||||
|
if (len(opts) == 0 or (len(opts) == 1 and "-win" in opts ) or '-extended' in opts |
||||||
|
or testScripts[i] in opts or re.sub(".py$", "", testScripts[i]) in opts ): |
||||||
|
print "Running testscript " + testScripts[i] + "..." |
||||||
|
subprocess.call(rpcTestDir + testScripts[i] + " --srcdir " + buildDir + '/src ' + passOn,shell=True) |
||||||
|
#exit if help is called so we print just one set of instructions |
||||||
|
p = re.compile(" -h| --help") |
||||||
|
if p.match(passOn): |
||||||
|
sys.exit(0) |
||||||
|
|
||||||
|
#Run Extended Tests |
||||||
|
for i in range(len(testScriptsExt)): |
||||||
|
if ('-extended' in opts or testScriptsExt[i] in opts |
||||||
|
or re.sub(".py$", "", testScriptsExt[i]) in opts): |
||||||
|
print "Running 2nd level testscript " + testScriptsExt[i] + "..." |
||||||
|
subprocess.call(rpcTestDir + testScriptsExt[i] + " --srcdir " + buildDir + '/src ' + passOn,shell=True) |
||||||
|
else: |
||||||
|
print "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled" |
@ -1,89 +0,0 @@ |
|||||||
#!/bin/bash |
|
||||||
set -e |
|
||||||
|
|
||||||
CURDIR=$(cd $(dirname "$0"); pwd) |
|
||||||
# Get BUILDDIR and REAL_BITCOIND |
|
||||||
. "${CURDIR}/tests-config.sh" |
|
||||||
|
|
||||||
export BITCOIND=${REAL_BITCOIND} |
|
||||||
export BITCOINCLI=${REAL_BITCOINCLI} |
|
||||||
|
|
||||||
if [ "x${EXEEXT}" = "x.exe" ]; then |
|
||||||
echo "Win tests currently disabled" |
|
||||||
exit 0 |
|
||||||
fi |
|
||||||
|
|
||||||
#Run the tests |
|
||||||
|
|
||||||
testScripts=( |
|
||||||
'wallet.py' |
|
||||||
'listtransactions.py' |
|
||||||
'mempool_resurrect_test.py' |
|
||||||
'txn_doublespend.py --mineblock' |
|
||||||
'txn_clone.py' |
|
||||||
'getchaintips.py' |
|
||||||
'rawtransactions.py' |
|
||||||
'rest.py' |
|
||||||
'mempool_spendcoinbase.py' |
|
||||||
'mempool_coinbase_spends.py' |
|
||||||
'httpbasics.py' |
|
||||||
'zapwallettxes.py' |
|
||||||
'proxy_test.py' |
|
||||||
'merkle_blocks.py' |
|
||||||
'fundrawtransaction.py' |
|
||||||
'signrawtransactions.py' |
|
||||||
'walletbackup.py' |
|
||||||
'nodehandling.py' |
|
||||||
'reindex.py' |
|
||||||
'decodescript.py' |
|
||||||
'p2p-fullblocktest.py' |
|
||||||
); |
|
||||||
testScriptsExt=( |
|
||||||
'bipdersig-p2p.py' |
|
||||||
'bipdersig.py' |
|
||||||
'getblocktemplate_longpoll.py' |
|
||||||
'getblocktemplate_proposals.py' |
|
||||||
'txn_doublespend.py' |
|
||||||
'txn_clone.py --mineblock' |
|
||||||
'pruning.py' |
|
||||||
'forknotify.py' |
|
||||||
'invalidateblock.py' |
|
||||||
'keypool.py' |
|
||||||
'receivedby.py' |
|
||||||
'rpcbind_test.py' |
|
||||||
# 'script_test.py' |
|
||||||
'smartfees.py' |
|
||||||
'maxblocksinflight.py' |
|
||||||
'invalidblockrequest.py' |
|
||||||
# 'forknotify.py' |
|
||||||
'p2p-acceptblock.py' |
|
||||||
'mempool_packages.py' |
|
||||||
); |
|
||||||
|
|
||||||
if [ "x$ENABLE_ZMQ" = "x1" ]; then |
|
||||||
testScripts+=('zmq_test.py') |
|
||||||
fi |
|
||||||
|
|
||||||
extArg="-extended" |
|
||||||
passOn=${@#$extArg} |
|
||||||
|
|
||||||
if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then |
|
||||||
for (( i = 0; i < ${#testScripts[@]}; i++ )) |
|
||||||
do |
|
||||||
if [ -z "$1" ] || [ "${1:0:1}" == "-" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ] |
|
||||||
then |
|
||||||
echo -e "Running testscript \033[1m${testScripts[$i]}...\033[0m" |
|
||||||
${BUILDDIR}/qa/rpc-tests/${testScripts[$i]} --srcdir "${BUILDDIR}/src" ${passOn} |
|
||||||
fi |
|
||||||
done |
|
||||||
for (( i = 0; i < ${#testScriptsExt[@]}; i++ )) |
|
||||||
do |
|
||||||
if [ "$1" == $extArg ] || [ "$1" == "${testScriptsExt[$i]}" ] || [ "$1.py" == "${testScriptsExt[$i]}" ] |
|
||||||
then |
|
||||||
echo -e "Running \033[1m2nd level\033[0m testscript \033[1m${testScriptsExt[$i]}...\033[0m" |
|
||||||
${BUILDDIR}/qa/rpc-tests/${testScriptsExt[$i]} --srcdir "${BUILDDIR}/src" ${passOn} |
|
||||||
fi |
|
||||||
done |
|
||||||
else |
|
||||||
echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled" |
|
||||||
fi |
|
Loading…
Reference in new issue