lbrycrd/qa/rpc-tests
Wladimir J. van der Laan 3b1295e988
qa/rpc_tests: Wait for handshake to complete in connect_nodes
This avoids a race condition in which the connection was
made but the version handshake is not completed yet. In that
case transactions won't be broadcasted to a peer yet, and
the nodes will wait forever for their mempools to sync.
2014-06-23 17:43:55 +02:00
..
python-bitcoinrpc Fix regression tests 2014-03-24 19:14:51 +01:00
.gitignore Python-based regression tests 2014-02-28 15:24:31 -05:00
conflictedbalance.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
listtransactions.py Fix regression tests 2014-03-24 19:14:51 +01:00
netutil.py Add Python test for -rpcbind and -rpcallowip 2014-05-13 07:23:23 +02:00
README.md Removed LevelDB changes 2014-05-01 12:10:06 -04:00
receivedby.py added list/get received by address/ account tests 2014-04-02 09:12:44 +02:00
rpcbind_test.py Add Python test for -rpcbind and -rpcallowip 2014-05-13 07:23:23 +02:00
send.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
skeleton.py Fix regression tests 2014-03-24 19:14:51 +01:00
smartfees.py estimatefee / estimatepriority RPC methods 2014-06-06 10:44:57 -04:00
txnmall.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
util.py qa/rpc_tests: Wait for handshake to complete in connect_nodes 2014-06-23 17:43:55 +02:00
util.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
wallet.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
walletbackup.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00

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.

skeleton.py

Copy this to create 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