|
|
@ -5,18 +5,15 @@ sense to simply use this framework rather than require developers to |
|
|
|
configure some other framework (we want as few impediments to creating |
|
|
|
configure some other framework (we want as few impediments to creating |
|
|
|
unit tests as possible). |
|
|
|
unit tests as possible). |
|
|
|
|
|
|
|
|
|
|
|
The build system is setup to compile an executable called "test_bitcoin" |
|
|
|
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 |
|
|
|
that runs all of the unit tests. The main source file is called |
|
|
|
test_bitcoin.cpp, which simply includes other files that contain the |
|
|
|
test_bitcoin.cpp. To add a new unit test file to our test suite you need |
|
|
|
actual unit tests (outside of a couple required preprocessor |
|
|
|
to add the file to `src/Makefile.test.include`. The pattern is to create |
|
|
|
directives). The pattern is to create one test file for each class or |
|
|
|
one test file for each class or source file for which you want to create |
|
|
|
source file for which you want to create unit tests. The file naming |
|
|
|
unit tests. The file naming convention is `<source_filename>_tests.cpp` |
|
|
|
convention is "<source_filename>_tests.cpp" and such files should wrap |
|
|
|
and such files should wrap their tests in a test suite |
|
|
|
their tests in a test suite called "<source_filename>_tests". For an |
|
|
|
called `<source_filename>_tests`. For an example of this pattern, |
|
|
|
examples of this pattern, examine uint160_tests.cpp and |
|
|
|
examine `uint256_tests.cpp`. |
|
|
|
uint256_tests.cpp. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Add the source files to /src/Makefile.test.include to add them to the build. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For further reading, I found the following website to be helpful in |
|
|
|
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: |
|
|
@ -31,5 +28,5 @@ example, to run just the getarg_tests verbosely: |
|
|
|
|
|
|
|
|
|
|
|
test_bitcoin --run_test=getarg_tests/doubledash |
|
|
|
test_bitcoin --run_test=getarg_tests/doubledash |
|
|
|
|
|
|
|
|
|
|
|
Run test_bitcoin --help for the full list. |
|
|
|
Run `test_bitcoin --help` for the full list. |
|
|
|
|
|
|
|
|
|
|
|