2016-11-02 23:35:52 +01:00
### 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 dashd tests manually, launch `src/test/test_dash` .
To add more dashd 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 dash-qt tests manually, launch `src/qt/test/test_dash-qt`
To add more dash-qt tests, add them to the `src/qt/test/` directory and
the `src/qt/test/test_main.cpp` file.
### Running individual tests
test_dash has some built-in command-line arguments; for
example, to run just the getarg_tests verbosely:
test_dash --log_level=all --run_test=getarg_tests
... or to run just the doubledash test:
test_dash --run_test=getarg_tests/doubledash
Run `test_dash --help` for the full list.
### Note on adding test cases
2011-06-27 20:05:02 +02:00
The sources in this directory are unit test cases. Boost includes a
2016-08-19 13:46:30 +02:00
unit testing framework, and since Dash Core already uses boost, it makes
2011-06-27 20:05:02 +02:00
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).
2016-08-03 11:00:17 +02:00
The build system is setup to compile an executable called `test_dash`
2011-06-27 20:05:02 +02:00
that runs all of the unit tests. The main source file is called
2016-08-03 11:00:17 +02:00
test_dash.cpp. 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`
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` .
2015-10-10 12:46:35 +02:00
2011-06-27 20:05:02 +02:00
For further reading, I found the following website to be helpful in
explaining how the boost unit test framework works:
2015-03-03 15:59:32 +01:00
[http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/ ](http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/ ).
2016-09-30 16:14:10 +02:00
### bitcoin-util-test.py
2016-11-02 23:35:52 +01:00
The test directory also contains the bitcoin-util-test.py tool, which tests bitcoin utils (currently just dash-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:
2016-09-30 16:14:10 +02:00
```
test/bitcoin-util-test.py --srcdir=[current directory]
```