You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bitcoin/qa/rpc-tests
Wladimir J. van der Laan 56dc70439f
tests: fix txn_clone.py (retry)
10 years ago
..
test_framework rpc-tests: remove python-bitcoinrpc directory 10 years ago
.gitignore Python-based regression tests 11 years ago
README.md Add paytxfee to getwalletinfo, warnings to getnetworkinfo 10 years ago
bipdersig-p2p.py [QA] restructure rpc tests directory 10 years ago
bipdersig.py [QA] restructure rpc tests directory 10 years ago
conflictedbalance.sh clarify that there are only two nodes 10 years ago
decodescript.py add tests for the decodescript rpc. add mention of the rpc regression tests to the testing seciton of the main readme. 10 years ago
forknotify.py [QA] restructure rpc tests directory 10 years ago
fundrawtransaction.py fundrawtransaction tests 10 years ago
getblocktemplate_longpoll.py [QA] restructure rpc tests directory 10 years ago
getblocktemplate_proposals.py [QA] restructure rpc tests directory 10 years ago
getchaintips.py [QA] restructure rpc tests directory 10 years ago
httpbasics.py add RPC tests for setban & disconnectnode 10 years ago
invalidateblock.py [QA] restructure rpc tests directory 10 years ago
invalidblockrequest.py [QA] restructure rpc tests directory 10 years ago
keypool.py rpc-tests: remove python-bitcoinrpc directory 10 years ago
listtransactions.py [QA] restructure rpc tests directory 10 years ago
maxblocksinflight.py [QA] restructure rpc tests directory 10 years ago
mempool_coinbase_spends.py [QA] restructure rpc tests directory 10 years ago
mempool_resurrect_test.py [QA] restructure rpc tests directory 10 years ago
mempool_spendcoinbase.py [QA] restructure rpc tests directory 10 years ago
merkle_blocks.py [QA] restructure rpc tests directory 10 years ago
nodehandling.py banlist.dat: store banlist on disk 10 years ago
p2p-acceptblock.py P2P regression test for new AcceptBlock behavior 10 years ago
proxy_test.py tests: Extend RPC proxy tests 10 years ago
pruning.py [QA] restructure rpc tests directory 10 years ago
rawtransactions.py pull-tester/rpc-tests.sh: allow passing throug of arguments 10 years ago
receivedby.py [QA] restructure rpc tests directory 10 years ago
reindex.py [QA] restructure rpc tests directory 10 years ago
rest.py Merge pull request #6193 10 years ago
rpcbind_test.py rpc-tests: remove python-bitcoinrpc directory 10 years ago
script_test.py [QA] restructure rpc tests directory 10 years ago
send.sh Update license in pull-tester and rpc-tests 10 years ago
signrawtransactions.py pull-tester/rpc-tests.sh: allow passing throug of arguments 10 years ago
smartfees.py [QA] restructure rpc tests directory 10 years ago
txn_clone.py tests: fix txn_clone.py (retry) 10 years ago
txn_doublespend.py Merge pull request #5881 10 years ago
util.sh Update license in pull-tester and rpc-tests 10 years ago
wallet.py [QA] restructure rpc tests directory 10 years ago
walletbackup.py Fix walletbackup.py after directory restructuring 10 years ago
zapwallettxes.py [QA] restructure rpc tests directory 10 years ago

README.md

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/test_framework.py

Base class for new regression tests.

test_framework/util.py

Generally useful functions.

Bash-based tests, to be ported to Python:

  • conflictedbalance.sh : More testing of malleable transaction handling

Notes

You can run a single test by calling qa/pull-tester/rpc-tests.sh <testname>.

Run all possible tests with qa/pull-tester/rpc-tests.sh -extended.

Possible options:

-h, --help       show this help message and exit
  --nocleanup      Leave bitcoinds and test.* datadir on exit or error
  --noshutdown     Don't stop bitcoinds after the test execution
  --srcdir=SRCDIR  Source directory containing bitcoind/bitcoin-cli (default:
                   ../../src)
  --tmpdir=TMPDIR  Root directory for datadirs
  --tracerpc       Print out all RPC calls as they are made

If you set the environment variable PYTHON_DEBUG=1 you will get some debug output (example: PYTHON_DEBUG=1 qa/pull-tester/rpc-tests.sh wallet).

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 its 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