b93974c3f3
comptool.py creates a tool for running a test suite on top of the mininode p2p framework. It supports two types of tests: those for which we expect certain behavior (acceptance or rejection of a block or transaction) and those for which we are just comparing that the behavior of 2 or more nodes is the same. blockstore.py defines BlockStore and TxStore, which provide db-backed maps between block/tx hashes and the corresponding block or tx. blocktools.py defines utility functions for creating and manipulating blocks and transactions. invalidblockrequest.py is an example test in the comptool framework, which tests the behavior of a single node when sent two different types of invalid blocks (a block with a duplicated transaction and a block with a bad coinbase value).
47 lines
1.2 KiB
Bash
Executable file
47 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
CURDIR=$(cd $(dirname "$0"); pwd)
|
|
# Get BUILDDIR and REAL_BITCOIND
|
|
. "${CURDIR}/tests-config.sh"
|
|
|
|
export BITCOINCLI=${BUILDDIR}/qa/pull-tester/run-bitcoin-cli
|
|
export BITCOIND=${REAL_BITCOIND}
|
|
|
|
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'
|
|
'txn_doublespend.py --mineblock'
|
|
'getchaintips.py'
|
|
'rest.py'
|
|
'mempool_spendcoinbase.py'
|
|
'mempool_coinbase_spends.py'
|
|
'httpbasics.py'
|
|
'zapwallettxes.py'
|
|
'proxy_test.py'
|
|
'merkle_blocks.py'
|
|
# 'forknotify.py'
|
|
'maxblocksinflight.py'
|
|
'invalidblockrequest.py'
|
|
);
|
|
if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then
|
|
for (( i = 0; i < ${#testScripts[@]}; i++ ))
|
|
do
|
|
if [ -z "$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"
|
|
fi
|
|
done
|
|
else
|
|
echo "No rpc tests to run. Wallet, utils, and bitcoind must all be enabled"
|
|
fi
|