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). |
||
---|---|---|
.. | ||
python-bitcoinrpc | ||
.gitignore | ||
bipdersig.py | ||
blockstore.py | ||
blocktools.py | ||
comptool.py | ||
conflictedbalance.sh | ||
forknotify.py | ||
getblocktemplate_longpoll.py | ||
getblocktemplate_proposals.py | ||
getchaintips.py | ||
httpbasics.py | ||
invalidateblock.py | ||
invalidblockrequest.py | ||
keypool.py | ||
listtransactions.py | ||
maxblocksinflight.py | ||
mempool_coinbase_spends.py | ||
mempool_resurrect_test.py | ||
mempool_spendcoinbase.py | ||
merkle_blocks.py | ||
mininode.py | ||
netutil.py | ||
proxy_test.py | ||
pruning.py | ||
README.md | ||
receivedby.py | ||
reindex.py | ||
rest.py | ||
rpcbind_test.py | ||
send.sh | ||
smartfees.py | ||
socks5.py | ||
test_framework.py | ||
txn_doublespend.py | ||
util.py | ||
util.sh | ||
wallet.py | ||
walletbackup.py | ||
zapwallettxes.py |
Regression tests of RPC interface
python-bitcoinrpc
Git subtree of https://github.com/jgarzik/python-bitcoinrpc. Changes to python-bitcoinrpc should be made upstream, and then pulled here using git subtree.
test_framework.py
Base class for new regression tests.
listtransactions.py
Tests for the listtransactions RPC call.
util.py
Generally useful functions.
Bash-based tests, to be ported to Python:
- wallet.sh : Exercise wallet send/receive code.
- walletbackup.sh : Exercise wallet backup / dump / import
- txnmall.sh : Test proper accounting of malleable transactions
- conflictedbalance.sh : More testing of malleable transaction handling
Notes
A 200-block -regtest blockchain and wallets for four nodes is created the first time a regression test is run and is stored in the cache/ directory. Each node has 25 mature blocks (25*50=1250 BTC) in their wallet.
After the first run, the cache/ blockchain and wallets are copied into a temporary directory and used as the initial test state.
If you get into a bad state, you should be able to recover with:
rm -rf cache
killall bitcoind