Merge doc/unit-tests.md into src/test/README.md

Refer to the right file in the top-level README.md.

Having only one file with test documentation saves some confusion about
where things are documented.
This commit is contained in:
Wladimir J. van der Laan 2016-11-02 18:16:32 +01:00
parent a4fd8dff68
commit eedc461882
4 changed files with 37 additions and 34 deletions

View file

@ -49,9 +49,10 @@ lots of money.
### Automated Testing ### Automated Testing
Developers are strongly encouraged to write [unit tests](/doc/unit-tests.md) for new code, and to Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to
submit new unit tests for old code. Unit tests can be compiled and run submit new unit tests for old code. Unit tests can be compiled and run
(assuming they weren't disabled in configure) with: `make check` (assuming they weren't disabled in configure) with: `make check`. Further details on running
and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
There are also [regression and integration tests](/qa) of the RPC interface, written There are also [regression and integration tests](/qa) of the RPC interface, written
in Python, that are run automatically on the build server. in Python, that are run automatically on the build server.

View file

@ -53,7 +53,6 @@ The Bitcoin repo's [root README](/README.md) contains relevant information on th
- [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/) - [Source Code Documentation (External Link)](https://dev.visucore.com/bitcoin/doxygen/)
- [Translation Process](translation_process.md) - [Translation Process](translation_process.md)
- [Translation Strings Policy](translation_strings_policy.md) - [Translation Strings Policy](translation_strings_policy.md)
- [Unit Tests](unit-tests.md)
- [Travis CI](travis-ci.md) - [Travis CI](travis-ci.md)
- [Unauthenticated REST Interface](REST-interface.md) - [Unauthenticated REST Interface](REST-interface.md)
- [Shared Libraries](shared-libraries.md) - [Shared Libraries](shared-libraries.md)

View file

@ -1,18 +0,0 @@
Compiling/running unit tests
------------------------------------
Unit tests will be automatically compiled if dependencies were met in `./configure`
and tests weren't explicitly disabled.
After configuring, they can be run with `make check`.
To run the bitcoind tests manually, launch `src/test/test_bitcoin`.
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.
To run the bitcoin-qt tests manually, launch `src/qt/test/test_bitcoin-qt`
To add more bitcoin-qt tests, add them to the `src/qt/test/` directory and
the `src/qt/test/test_main.cpp` file.

View file

@ -1,4 +1,36 @@
# Notes ### Compiling/running unit tests
Unit tests will be automatically compiled if dependencies were met in `./configure`
and tests weren't explicitly disabled.
After configuring, they can be run with `make check`.
To run the bitcoind tests manually, launch `src/test/test_bitcoin`.
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.
To run the bitcoin-qt tests manually, launch `src/qt/test/test_bitcoin-qt`
To add more bitcoin-qt tests, add them to the `src/qt/test/` directory and
the `src/qt/test/test_main.cpp` file.
### Running individual tests
test_bitcoin has some built-in command-line arguments; for
example, to run just the getarg_tests verbosely:
test_bitcoin --log_level=all --run_test=getarg_tests
... or to run just the doubledash test:
test_bitcoin --run_test=getarg_tests/doubledash
Run `test_bitcoin --help` for the full list.
### Note on adding test cases
The sources in this directory are unit test cases. Boost includes a The sources in this directory are unit test cases. Boost includes a
unit testing framework, and since bitcoin already uses boost, it makes unit testing framework, and since bitcoin already uses boost, it makes
sense to simply use this framework rather than require developers to sense to simply use this framework rather than require developers to
@ -19,17 +51,6 @@ For further reading, I found the following website to be helpful in
explaining how the boost unit test framework works: explaining how the boost unit test framework works:
[http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/). [http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/).
test_bitcoin has some built-in command-line arguments; for
example, to run just the getarg_tests verbosely:
test_bitcoin --log_level=all --run_test=getarg_tests
... or to run just the doubledash test:
test_bitcoin --run_test=getarg_tests/doubledash
Run `test_bitcoin --help` for the full list.
### bitcoin-util-test.py ### bitcoin-util-test.py
The test directory also contains the bitcoin-util-test.py tool, which tests bitcoin utils (currently just bitcoin-tx). This test gets run automatically during the `make check` build process. It is also possible to run the test manually from the src directory: The test directory also contains the bitcoin-util-test.py tool, which tests bitcoin utils (currently just bitcoin-tx). This test gets run automatically during the `make check` build process. It is also possible to run the test manually from the src directory:
@ -37,4 +58,4 @@ The test directory also contains the bitcoin-util-test.py tool, which tests bitc
``` ```
test/bitcoin-util-test.py --srcdir=[current directory] test/bitcoin-util-test.py --srcdir=[current directory]
``` ```