elements/qa/rpc-tests
Bryan Bishop aaf439bfd6 Implement watchonly support in fundrawtransaction
Support watchonly in fundrawtransaction, CreateTransaction, SelectCoins
and coin selection in general.

Coin selection is exposed over RPC through fundrawtransaction, and
watchonly can be enabled by passing includeWatching true (defaults to
false).

fundrawtransaction will first attempt to fund a transaction without
using watchonly, even when includeWatching is enabled. When this fails,
an includeWatching attempt is made.

When an includeWatching attempt at coin selection is performed (in
CreateTransaction), and all watchonlys are consumed leaving no funds
available for a fee, then CreateTransaction will not include a fee in
the transaction.

Also, includeWatching tests (for fundrawtransaction).

See also: https://github.com/bitcoin/bitcoin/pull/5503
2015-06-04 22:08:23 -07:00
..
python-bitcoinrpc Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
.gitignore Python-based regression tests 2014-02-28 15:24:31 -05:00
bipdersig.py Add RPC test for DERSIG BIP switchover logic 2015-02-01 17:57:44 -04:00
conflictedbalance.sh tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment 2014-10-31 00:05:55 -04:00
forknotify.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
getblocktemplate_longpoll.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
getblocktemplate_proposals.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
getchaintips.py Merge pull request #5386 2014-12-01 11:49:35 +01:00
httpbasics.py Restore RPC HTTP keepalives to default. 2015-01-19 12:16:17 +01:00
invalidateblock.py Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates 2015-03-24 14:51:36 +01:00
keypool.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
listtransactions.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
mempool_coinbase_spends.py RPC-test based on invalidateblock for mempool coinbase spends 2014-12-08 14:09:58 -08:00
mempool_resurrect_test.py Fix missing python2 in rpc-tests 2014-12-05 16:04:05 -08:00
mempool_spendcoinbase.py Fix missing python2 in rpc-tests 2014-12-05 16:04:05 -08:00
netutil.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
rawtransactions.py Implement watchonly support in fundrawtransaction 2015-06-04 22:08:23 -07:00
README.md Refactor common RPC test code to BitcoinTestFramework base class 2014-07-09 10:19:26 -04:00
receivedby.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
reindex.py Fix CheckBlockIndex for reindex. 2015-04-16 10:34:30 +02:00
rest.py [REST] /rest/block response with full tx details 2014-12-09 16:05:50 +01:00
rpcbind_test.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
send.sh Update license in pull-tester and rpc-tests 2014-10-23 09:48:19 +08:00
smartfees.py Fix smartfees test for change to relay policy 2015-01-08 11:45:26 +01:00
test_framework.py Add a -rpckeepalive and disable RPC use of HTTP persistent connections. 2015-01-15 09:38:24 +01:00
txn_doublespend.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
util.py Coinbases-in-mempool regression test 2014-12-02 19:07:39 -05:00
util.sh Update license in pull-tester and rpc-tests 2014-10-23 09:48:19 +08:00
wallet.py Fix python usage for arch's broken maintainers 2014-11-27 00:02:28 -05:00
walletbackup.py Port of walletbackup.sh to Python. 2014-12-09 10:57:51 +01:00
zapwallettxes.sh tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment 2014-10-31 00:05:55 -04: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