mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-03 17:54:19 +02:00
Merge #16953: doc: Improve test READMEs
43e7d576f5doc: Improve test READMEs (Fabian Jahr) Pull request description: General improvements on READMEs for unit tests and functional tests: - Give unit test readme a headline - Move general information on `src/test` folder to the top - Add information on logging and debugging unit tests - Improve debugging and logging information in functional testing - Include all available log levels in functional tests ACKs for top commit: laanwj: ACK43e7d576f5Tree-SHA512: 22b27644992ba5d99a885cd51b7a474806714396fcea1fd2d6285e41bdf3b28835ad8c81449099e3ee15a63d57b3ab9acb89c425d9855ed1d9b4af21db35ab03
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
# Unit tests
|
||||
|
||||
The sources in this directory are unit test cases. Boost includes a
|
||||
unit testing framework, and since Bitcoin Core already uses Boost, it makes
|
||||
sense to simply use this framework rather than require developers to
|
||||
configure some other framework (we want as few impediments to creating
|
||||
unit tests as possible).
|
||||
|
||||
The build system is set up to compile an executable called `test_bitcoin`
|
||||
that runs all of the unit tests. The main source file is called
|
||||
`setup_common.cpp`.
|
||||
|
||||
### Compiling/running unit tests
|
||||
|
||||
Unit tests will be automatically compiled if dependencies were met in `./configure`
|
||||
@@ -12,7 +24,7 @@ to run the bitcoind tests.
|
||||
|
||||
To add more bitcoind tests, add `BOOST_AUTO_TEST_CASE` functions to the existing
|
||||
.cpp files in the `test/` directory or add new .cpp files that
|
||||
implement new BOOST_AUTO_TEST_SUITE sections.
|
||||
implement new `BOOST_AUTO_TEST_SUITE` sections.
|
||||
|
||||
To run the bitcoin-qt tests manually, launch `src/qt/test/test_bitcoin-qt`
|
||||
|
||||
@@ -32,20 +44,24 @@ example, to run just the getarg_tests verbosely:
|
||||
|
||||
Run `test_bitcoin --help` for the full list.
|
||||
|
||||
### Note on adding test cases
|
||||
### Adding test cases
|
||||
|
||||
The sources in this directory are unit test cases. Boost includes a
|
||||
unit testing framework, and since bitcoin already uses boost, it makes
|
||||
sense to simply use this framework rather than require developers to
|
||||
configure some other framework (we want as few impediments to creating
|
||||
unit tests as possible).
|
||||
|
||||
The build system is setup to compile an executable called `test_bitcoin`
|
||||
that runs all of the unit tests. The main source file is called
|
||||
setup_common.cpp. To add a new unit test file to our test suite you need
|
||||
To add a new unit test file to our test suite you need
|
||||
to add the file to `src/Makefile.test.include`. The pattern is to create
|
||||
one test file for each class or source file for which you want to create
|
||||
unit tests. The file naming convention is `<source_filename>_tests.cpp`
|
||||
unit tests. The file naming convention is `<source_filename>_tests.cpp`
|
||||
and such files should wrap their tests in a test suite
|
||||
called `<source_filename>_tests`. For an example of this pattern,
|
||||
examine `uint256_tests.cpp`.
|
||||
see `uint256_tests.cpp`.
|
||||
|
||||
### Logging and debugging in unit tests
|
||||
|
||||
To write to logs from unit tests you need to use specific message methods
|
||||
provided by Boost. The simplest is `BOOST_TEST_MESSAGE`.
|
||||
|
||||
For debugging you can launch the test_bitcoin executable with `gdb`or `lldb` and
|
||||
start debugging, just like you would with bitcoind:
|
||||
|
||||
```bash
|
||||
gdb src/test/test_bitcoin
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user