aboutsummaryrefslogtreecommitdiff
path: root/qa/pull-tester
diff options
context:
space:
mode:
Diffstat (limited to 'qa/pull-tester')
-rw-r--r--qa/pull-tester/rpc-tests.py118
-rwxr-xr-xqa/pull-tester/rpc-tests.sh89
-rw-r--r--[-rwxr-xr-x]qa/pull-tester/tests_config.py.in (renamed from qa/pull-tester/tests-config.sh.in)4
3 files changed, 119 insertions, 92 deletions
diff --git a/qa/pull-tester/rpc-tests.py b/qa/pull-tester/rpc-tests.py
new file mode 100644
index 0000000000..68c1c0471e
--- /dev/null
+++ b/qa/pull-tester/rpc-tests.py
@@ -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"
diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh
deleted file mode 100755
index 7e1d2e8e50..0000000000
--- a/qa/pull-tester/rpc-tests.sh
+++ /dev/null
@@ -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
diff --git a/qa/pull-tester/tests-config.sh.in b/qa/pull-tester/tests_config.py.in
index e881a95110..937b4231f1 100755..100644
--- a/qa/pull-tester/tests-config.sh.in
+++ b/qa/pull-tester/tests_config.py.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env python2
# Copyright (c) 2013-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.
@@ -12,6 +12,4 @@ EXEEXT="@EXEEXT@"
@BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=1
@ENABLE_ZMQ_TRUE@ENABLE_ZMQ=1
-REAL_BITCOIND="$BUILDDIR/src/bitcoind${EXEEXT}"
-REAL_BITCOINCLI="$BUILDDIR/src/bitcoin-cli${EXEEXT}"