Browse Source
make -f makefile.{unix,osx,mingw} test_bitcoin to compile dumb, do-almost-nothing placeholder unit tests.miguelfreitas
Gavin Andresen
14 years ago
8 changed files with 83 additions and 3 deletions
@ -0,0 +1,21 @@ |
|||||||
|
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 |
||||||
|
test_bitcoin.cpp, which simply includes other files that contain the |
||||||
|
actual unit tests (outside of a couple required preprocessor |
||||||
|
directives). 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 |
||||||
|
examples of this pattern, examine uint160_tests.cpp and |
||||||
|
uint256_tests.cpp. |
||||||
|
|
||||||
|
For further reading, I found the following website to be helpful in |
||||||
|
explaining how the boost unit test framework works: |
||||||
|
|
||||||
|
http://www.alittlemadness.com/2009/03/31/c-unit-testing-with-boosttest/ |
@ -0,0 +1,6 @@ |
|||||||
|
#define BOOST_TEST_MODULE uint160 |
||||||
|
#include <boost/test/unit_test.hpp> |
||||||
|
|
||||||
|
#include "uint160_tests.cpp" |
||||||
|
#include "uint256_tests.cpp" |
||||||
|
|
@ -0,0 +1,16 @@ |
|||||||
|
#include "../uint256.h" |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE(uint160_tests) |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(equality) |
||||||
|
{ |
||||||
|
uint160 num1 = 10; |
||||||
|
uint160 num2 = 11; |
||||||
|
BOOST_CHECK(num1+1 == num2); |
||||||
|
|
||||||
|
uint64 num3 = 10; |
||||||
|
BOOST_CHECK(num1 == num3); |
||||||
|
BOOST_CHECK(num1+num2 == num3+num2); |
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END() |
@ -0,0 +1,16 @@ |
|||||||
|
#include "../uint256.h" |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE(uint256_tests) |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(equality) |
||||||
|
{ |
||||||
|
uint256 num1 = 10; |
||||||
|
uint256 num2 = 11; |
||||||
|
BOOST_CHECK(num1+1 == num2); |
||||||
|
|
||||||
|
uint64 num3 = 10; |
||||||
|
BOOST_CHECK(num1 == num3); |
||||||
|
BOOST_CHECK(num1+num2 == num3+num2); |
||||||
|
} |
||||||
|
|
||||||
|
BOOST_AUTO_TEST_SUITE_END() |
Loading…
Reference in new issue