6c1d1ba6fc
mininode.py provides a framework for connecting to a bitcoin node over the p2p network. NodeConn is the main object that manages connectivity to a node and provides callbacks; the interface for those callbacks is defined by NodeConnCB. Defined also are all data structures from bitcoin core that pass on the network (CBlock, CTransaction, etc), along with de-/serialization functions. maxblocksinflight.py is an example test using this framework that tests whether a node is limiting the maximum number of in-flight block requests. This also adds support to util.py for specifying the binary to use when starting nodes (for tests that compare the behavior of different bitcoind versions), and adds maxblocksinflight.py to the pull tester. |
||
---|---|---|
.. | ||
python-bitcoinrpc | ||
.gitignore | ||
bipdersig.py | ||
conflictedbalance.sh | ||
forknotify.py | ||
getblocktemplate_longpoll.py | ||
getblocktemplate_proposals.py | ||
getchaintips.py | ||
httpbasics.py | ||
invalidateblock.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