diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2014-02-26 16:31:18 -0500 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2014-02-28 15:24:31 -0500 |
commit | 356cfe83065aa4f120707f026c10c83f1e62be89 (patch) | |
tree | 4b7cb43de0e900b89d6422511f28a5b2e020d25e /qa/rpc-tests/README.md | |
parent | 260cf5c0a4754be39b05f6a247b8a354de7eced6 (diff) |
Python-based regression tests
skeleton.py : a do-nothing test skeleton
listtransactions.py : start of regression test for listtransactions call
Diffstat (limited to 'qa/rpc-tests/README.md')
-rw-r--r-- | qa/rpc-tests/README.md | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/qa/rpc-tests/README.md b/qa/rpc-tests/README.md index 15aede6c41..835ff11057 100644 --- a/qa/rpc-tests/README.md +++ b/qa/rpc-tests/README.md @@ -1,26 +1,36 @@ Regression tests of RPC interface ================================= -Bash scripts that use the RPC interface and command-line bitcoin-cli to test -full functionality in -regtest mode. +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 -wallet.sh : Exercise wallet send/receive code. +skeleton.py : Copy this to create new regression tests. -txnmall.sh : Test proper accounting of malleable transactions +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 -util.sh : useful re-usable bash functions +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. -Tips for creating new tests -=========================== +After the first run, the cache/ blockchain and wallets are +copied into a temporary directory and used as the initial +test state. -To cleanup after a failed or interrupted test: +If you get into a bad state, you should be able +to recover with: + rm -rf cache killall bitcoind - rm -rf test.* - -The most difficult part of writing reproducible tests is -keeping multiple nodes in sync. See WaitBlocks, -WaitPeers, and WaitMemPools for how other tests -deal with this. |