6ee75b3b7b
Test prioritisetransaction After talking with @str4d about #1884 , I wrote a test for prioritisetransaction. It uses small blocks (11kb), and checks whether a transaction makes it into the next block after being prioritized by that node. Should this be improved with a larger number of txs in the mempool, or by testing over multiple runs? As for getblocktemplate(), it seems to return the prioritized transaction within the block size set by the node (about 50 txs fit in an 11kb block), but the block "sizelimit" it displays is set at 2 MB in `rpcmining.cpp` line 690: ``` result.push_back(Pair("sizelimit", (int64_t)MAX_BLOCK_SIZE)); ``` This was quite confusing, I didn't think the `-blockmaxsize` parameter I was setting was working for awhile. |
||
---|---|---|
.. | ||
test_framework | ||
.gitignore | ||
README.md | ||
bip65-cltv-p2p.py | ||
bip65-cltv.py | ||
bipdersig-p2p.py | ||
bipdersig.py | ||
forknotify.py | ||
getblocktemplate.py | ||
getblocktemplate_longpoll.py | ||
getblocktemplate_proposals.py | ||
getchaintips.py | ||
hardforkdetection.py | ||
httpbasics.py | ||
invalidateblock.py | ||
invalidblockrequest.py | ||
keypool.py | ||
listtransactions.py | ||
maxblocksinflight.py | ||
mempool_coinbase_spends.py | ||
mempool_resurrect_test.py | ||
mempool_spendcoinbase.py | ||
merkle_blocks.py | ||
p2p-acceptblock.py | ||
prioritisetransaction.py | ||
proxy_test.py | ||
pruning.py | ||
rawtransactions.py | ||
receivedby.py | ||
reindex.py | ||
rest.py | ||
rpcbind_test.py | ||
script_test.py | ||
signrawtransactions.py | ||
smartfees.py | ||
txn_doublespend.py | ||
wallet.py | ||
wallet_1941.py | ||
wallet_nullifiers.py | ||
wallet_protectcoinbase.py | ||
wallet_treestate.py | ||
walletbackup.py | ||
zapwallettxes.py | ||
zcjoinsplit.py | ||
zcjoinsplitdoublespend.py | ||
zmq_test.py |
README.md
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/test_framework.py
Base class for new regression tests.
test_framework/util.py
Generally useful functions.
Notes
You can run a single test by calling qa/pull-tester/rpc-tests.sh <testname>
.
Run all possible tests with qa/pull-tester/rpc-tests.sh -extended
.
Possible options:
-h, --help show this help message and exit
--nocleanup Leave bitcoinds and test.* datadir on exit or error
--noshutdown Don't stop bitcoinds after the test execution
--srcdir=SRCDIR Source directory containing bitcoind/bitcoin-cli (default:
../../src)
--tmpdir=TMPDIR Root directory for datadirs
--tracerpc Print out all RPC calls as they are made
```
If you set the environment variable `PYTHON_DEBUG=1` you will get some debug output (example: `PYTHON_DEBUG=1 qa/pull-tester/rpc-tests.sh wallet`).
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 its 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:
```bash
rm -rf cache
killall bitcoind
```