aboutsummaryrefslogtreecommitdiff
path: root/qa
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2015-10-13 12:22:40 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2015-10-13 12:23:45 +0200
commit9caaf6ed22d052bae2b9552a7d2df529166664e8 (patch)
tree1bdc5d1979cc745f573ef4e6ad375ee7bd8473ac /qa
parent16faccb736ab23aec0a325133b4e0caf91dd8d52 (diff)
parentdcd8e27c65de0d2cb972588a6e811ca7ccd1b3bd (diff)
downloadbitcoin-9caaf6ed22d052bae2b9552a7d2df529166664e8.tar.xz
Merge pull request #6777
dcd8e27 Refer to obfuscate_key via pointer in peripheral CLevelDB classes (James O'Beirne) 1488506 Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator (James O'Beirne) 0fdf8c8 Handle obfuscation in CLevelDBIterator (James O'Beirne) 3499ce1 Encapsulate CLevelDB iterators cleanly (Pieter Wuille)
Diffstat (limited to 'qa')
-rwxr-xr-xqa/pull-tester/rpc-tests.py15
-rwxr-xr-xqa/rpc-tests/blockchain.py52
2 files changed, 60 insertions, 7 deletions
diff --git a/qa/pull-tester/rpc-tests.py b/qa/pull-tester/rpc-tests.py
index 58098bdec5..db97767272 100755
--- a/qa/pull-tester/rpc-tests.py
+++ b/qa/pull-tester/rpc-tests.py
@@ -38,7 +38,7 @@ for i in range(1,len(sys.argv)):
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"
@@ -67,6 +67,7 @@ testScripts = [
'reindex.py',
'decodescript.py',
'p2p-fullblocktest.py',
+ 'blockchain.py',
]
testScriptsExt = [
'bipdersig-p2p.py',
@@ -98,10 +99,10 @@ 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
+ 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)
+ 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):
@@ -109,9 +110,9 @@ if(ENABLE_WALLET == 1 and ENABLE_UTILS == 1 and ENABLE_BITCOIND == 1):
#Run Extended Tests
for i in range(len(testScriptsExt)):
- if ('-extended' in opts or testScriptsExt[i] in opts
+ 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)
+ 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/rpc-tests/blockchain.py b/qa/rpc-tests/blockchain.py
new file mode 100755
index 0000000000..a5c98b777e
--- /dev/null
+++ b/qa/rpc-tests/blockchain.py
@@ -0,0 +1,52 @@
+#!/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.
+
+#
+# Test RPC calls related to blockchain state.
+#
+
+import decimal
+
+from test_framework.test_framework import BitcoinTestFramework
+from test_framework.util import (
+ initialize_chain,
+ assert_equal,
+ start_nodes,
+ connect_nodes_bi,
+)
+
+class BlockchainTest(BitcoinTestFramework):
+ """
+ Test blockchain-related RPC calls:
+
+ - gettxoutsetinfo
+
+ """
+
+ def setup_chain(self):
+ print("Initializing test directory " + self.options.tmpdir)
+ initialize_chain(self.options.tmpdir)
+
+ def setup_network(self, split=False):
+ self.nodes = start_nodes(2, self.options.tmpdir)
+ connect_nodes_bi(self.nodes, 0, 1)
+ self.is_network_split = False
+ self.sync_all()
+
+ def run_test(self):
+ node = self.nodes[0]
+ res = node.gettxoutsetinfo()
+
+ assert_equal(res[u'total_amount'], decimal.Decimal('8725.00000000'))
+ assert_equal(res[u'transactions'], 200)
+ assert_equal(res[u'height'], 200)
+ assert_equal(res[u'txouts'], 200)
+ assert_equal(res[u'bytes_serialized'], 13000),
+ assert_equal(len(res[u'bestblock']), 64)
+ assert_equal(len(res[u'hash_serialized']), 64)
+
+
+if __name__ == '__main__':
+ BlockchainTest().main()