@ -4,13 +4,13 @@
#### Example test
The [ example_test.py](example_test.py ) is a heavily commented example of a test case that uses both
the RPC and P2P interfaces. If you are writing your first test, copy that file
and modify to fit your needs.
The file [test/functional/ example_test.py](example_test.py ) is a heavily commented example
of a test case that uses both the RPC and P2P interfaces. If you are writing your first test, copy
that file and modify to fit your needs.
#### Coverage
Running `test _runner.py` with the `--coverage` argument tracks which RPCs are
Running `test /functional/test _runner.py` with the `--coverage` argument tracks which RPCs are
called by the tests and prints a report of uncovered RPCs in the summary. This
can be used (along with the `--extended` argument) to find out which RPCs we
don't have test cases for.
@ -82,7 +82,7 @@ P2P messages. These can be found in the following source files:
#### Using the P2P interface
- `messages.py` contains all the definitions for objects that pass
- [messages.py ](test_framework/messages.py ) contains all the definitions for objects that pass
over the network (`CBlock`, `CTransaction` , etc, along with the network-level
wrappers for them, `msg_block` , `msg_tx` , etc).
@ -96,32 +96,35 @@ the Bitcoin Core node application logic. For custom behaviour, subclass the
P2PInterface object and override the callback methods.
- Can be used to write tests where specific P2P protocol behavior is tested.
Examples tests are `p2p_unrequested_blocks.py` , `p2p_compactblocks.py` .
Examples tests are [p2p_unrequested_blocks.py ](p2p_unrequested_blocks.py ),
[p2p_compactblocks.py ](p2p_compactblocks.py ).
### test-framework modules
### Test framework modules
The following are useful modules for test developers. They are located in
[test/functional/test_framework/ ](test_framework ).
#### [test_framework/authproxy.py ](test_framework/authproxy.py )
#### [ authproxy.py](test_framework/authproxy.py )
Taken from the [python-bitcoinrpc repository ](https://github.com/jgarzik/python-bitcoinrpc ).
#### [test_framework /test_framework .py](test_framework/test_framework.py )
#### [test_framework .py](test_framework/test_framework.py )
Base class for functional tests.
#### [test_framework/ util.py](test_framework/util.py )
#### [ util.py](test_framework/util.py )
Generally useful functions.
#### [test_framework/ mininode.py](test_framework/mininode.py )
#### [ mininode.py](test_framework/mininode.py )
Basic code to support P2P connectivity to a bitcoind.
#### [test_framework/ script.py](test_framework/script.py )
#### [ script.py](test_framework/script.py )
Utilities for manipulating transaction scripts (originally from python-bitcoinlib)
#### [test_framework/ key.py](test_framework/key.py )
#### [ key.py](test_framework/key.py )
Test-only secp256k1 elliptic curve implementation
#### [test_framework/ bignum.py](test_framework/bignum.py )
#### [ bignum.py](test_framework/bignum.py )
Helpers for script.py
#### [test_framework/ blocktools.py](test_framework/blocktools.py )
#### [ blocktools.py](test_framework/blocktools.py )
Helper functions for creating blocks and transactions.
### Benchmarking with perf