From 356cfe83065aa4f120707f026c10c83f1e62be89 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Wed, 26 Feb 2014 16:31:18 -0500 Subject: Python-based regression tests skeleton.py : a do-nothing test skeleton listtransactions.py : start of regression test for listtransactions call --- qa/rpc-tests/README.md | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'qa/rpc-tests/README.md') 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. -- cgit v1.2.3