Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Test module's initialization

In order for a unit test module to successfully link and execute, it has to have access to the test module's initialization function. the module's initialization function is called only once during the execution of the program, just before the test module runner is run. By default, the Unit Test Framework provides a default definition of initialization function. The only thing you have to do is to instruct the framework in which translation unit (cpp file) it needs to provide the definition. You do it by defining macro BOOST_TEST_MODULE in the designated file. The default implementation assigns the name to the test module as well as the master test suite. The name to be assigned is specified by the value of the macro BOOST_TEST_MODULE.

[Important] Important

For a test module consisting of multiple source files you have to define BOOST_TEST_MODULE in a single test file only. Otherwise you end up with multiple instances of the initialization function.

There is practically no need to ever alter the default behavior of the test module's initialization function. The Unit Test Framework provides superior tools for performing customization tasks:

The default initialization function provided by the framework is defined with the following signature in the global namespace:

bool init_unit_test();

Return value true indicates a successful initialization. Value false indicates initialization failure.

For overriding the default definition: