Merge pull request #6777
dcd8e27Refer to obfuscate_key via pointer in peripheral CLevelDB classes (James O'Beirne)1488506Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator (James O'Beirne)0fdf8c8Handle obfuscation in CLevelDBIterator (James O'Beirne)3499ce1Encapsulate CLevelDB iterators cleanly (Pieter Wuille)
This commit is contained in:
@@ -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"
|
||||
|
||||
52
qa/rpc-tests/blockchain.py
Executable file
52
qa/rpc-tests/blockchain.py
Executable file
@@ -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()
|
||||
Reference in New Issue
Block a user