neobytes/qa/rpc-tests
Wladimir J. van der Laan 6c37f7fd78 getrawchangeaddress should fail when keypool exhausted
An user on IRC reported an issue where `getrawchangeaddress`
keeps returning a single address when the keypool is exhausted.
In my opinion this is strange behaviour.

- Change CReserveKey to fail when running out of keys in the keypool.
- Make `getrawchangeaddress` return RPC_WALLET_KEYPOOL_RAN_OUT when
  unable to create an address.
- Add a Python RPC test for checking the keypool behaviour in combination
  with encrypted wallets.
2014-07-11 15:24:29 +02:00
..
python-bitcoinrpc Improved logging and Decimal support 2014-07-08 14:31:13 -04: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
keypool.py getrawchangeaddress should fail when keypool exhausted 2014-07-11 15:24:29 +02:00
listtransactions.py Refactor common RPC test code to BitcoinTestFramework base class 2014-07-09 10:19:26 -04:00
netutil.py Add Python test for -rpcbind and -rpcallowip 2014-05-13 07:23:23 +02:00
README.md Refactor common RPC test code to BitcoinTestFramework base class 2014-07-09 10:19:26 -04:00
receivedby.py Refactor common RPC test code to BitcoinTestFramework base class 2014-07-09 10:19:26 -04:00
rpcbind_test.py rpc-tests: Fix rpcbind_test after 0193fb8 2014-06-27 10:06:40 +02:00
send.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
smartfees.py Refactor common RPC test code to BitcoinTestFramework base class 2014-07-09 10:19:26 -04:00
test_framework.py Print better errors, and add util stop_node() function. 2014-07-09 10:19:46 -04:00
txnmall.sh Add licenses for tests and test data 2014-03-18 10:20:55 +01:00
util.py Print better errors, and add util stop_node() function. 2014-07-09 10:19:46 -04:00
util.sh Let -zapwallettxes recover transaction meta data 2014-06-16 18:56:57 +02: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
zapwallettxes.sh Let -zapwallettxes recover transaction meta data 2014-06-16 18:56:57 +02: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.

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