ae01c8387c
- section about command line argument filtering for template test cases - many typos fixes - remove reference to bjam
135 lines
5.6 KiB
Plaintext
135 lines
5.6 KiB
Plaintext
[/
|
|
/ Copyright (c) 2003 Boost.Test contributors
|
|
/
|
|
/ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
/ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
/]
|
|
|
|
|
|
[section:link_references Build scenarios and behaviors]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_main_macro `BOOST_TEST_MAIN`]
|
|
|
|
When defined, this macro creates a stub for the test module initialization (the main entry part). This
|
|
macro also expands properly into a `main` function in case the shared library variant of the __UTF__ is used.
|
|
|
|
|
|
[caution This macro should
|
|
|
|
# be defined before any inclusion directive to __UTF__ headers
|
|
# be defined exactly for one compilation unit of your test module
|
|
|
|
]
|
|
|
|
[tip The macro __BOOST_TEST_MODULE__ should be preferred]
|
|
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_module_macro `BOOST_TEST_MODULE`]
|
|
Serves the same purpose as the macro __BOOST_TEST_MAIN__ but, in addition, defines the name of the master test suite.
|
|
|
|
[caution As __BOOST_TEST_MAIN__, this macro should
|
|
|
|
# be defined before any inclusion directive to __UTF__ headers
|
|
# be defined exactly for one compilation unit of your test module
|
|
|
|
]
|
|
|
|
An example may be found [link ref_BOOST_TEST_MODULE here].
|
|
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_alternative_init_macro `BOOST_TEST_ALTERNATIVE_INIT_API`]
|
|
|
|
[warning This macro should be defined before any include directive to the __UTF__ headers and is
|
|
mutually exclusive with the __BOOST_TEST_MODULE__ macro.]
|
|
|
|
In case of custom initialization of the test module entry point, this macro indicates the __UTF__ to
|
|
use the new API. The differences between the new and old APIs are described in [link
|
|
boost_test.adv_scenarios.obsolete_init_func this section].
|
|
|
|
The way to customize the entry point of the test-module depends on the variant of the __UTF__ in use.
|
|
Several sections in the documentation are devoted to this:
|
|
|
|
* [link boost_test.adv_scenarios.single_header_customizations.entry_point this section] for single header variant,
|
|
* [link boost_test.adv_scenarios.static_lib_customizations.init_func this section] for static link variant,
|
|
* [link boost_test.adv_scenarios.shared_lib_customizations.init_func this section] for shared link variant
|
|
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_no_lib `BOOST_TEST_NO_LIB`]
|
|
Define this flag to prevent auto-linking.
|
|
[note The same flag is used for the __UTF__ and the __PEM__ components.]
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_dyn_link `BOOST_TEST_DYN_LINK`]
|
|
Define this flag to link against the __UTF__ shared library.
|
|
[note The same flag is used for the __UTF__ and the __PEM__ components.]
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_no_main `BOOST_TEST_NO_MAIN`]
|
|
Prevents the auto generation of the test module initialization functions. This macro is particularly relevant for
|
|
manually registered tests in conjunction with dynamic variant of the __UTF__. When defined, a `main` function
|
|
registering all the tests should be implemented.
|
|
|
|
An example of a module initialization would be
|
|
``
|
|
#define __BOOST_TEST_NO_MAIN__
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
// a function in another compilation unit registering tests under the master test suite.
|
|
void register_some_tests_manually(test_suite* test);
|
|
|
|
bool registering_all_tests()
|
|
{
|
|
test_suite* test_master_suite = &boost::unit_test::framework::master_test_suite();
|
|
register_some_tests_manually(test_master_suite);
|
|
|
|
// register any other tests function or test suite to the master test suite
|
|
// ...
|
|
return true;
|
|
}
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
return ::boost::unit_test::unit_test_main(®istering_all_tests, argc, argv);
|
|
}
|
|
``
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:link_boost_test_global_configuration `BOOST_TEST_GLOBAL_CONFIGURATION`]
|
|
Declares a class that will be constructed during the initialization of the test framework, and destructed afterwards.
|
|
The framework will not call any other member function than the constructor and destructor.
|
|
In particular the constructor and destructor will be called prior and after to the [link boost_test.tests_organization.fixtures.global global fixtures]
|
|
setup and teardown.
|
|
|
|
This facility is provided to perform additional configuration, in particular programmatic configuration
|
|
of the loggers and reporters. See [link boost_test.test_output.logging_api this section] for more details.
|
|
|
|
[warning No logging or any other call to the framework assertion is allowed in the constructor and destructor, as its purpose is
|
|
to set-up the loggers/reporters, and the assertions are calling the logging/reporting facility.
|
|
Any such assertion during the execution of the will result in the abortion of the test module .]
|
|
|
|
[endsect]
|
|
|
|
[/-----------------------------------------------------------------]
|
|
[section:config_disable_alt_stack `BOOST_TEST_DISABLE_ALT_STACK`]
|
|
Disables the support of the alternative stack.
|
|
|
|
Define this macro before the inclusion of any __UTF__ header to disable the support
|
|
of the [@http://www.gnu.org/software/libc/manual/html_node/Signal-Stack.html alternative stack],
|
|
in case your compiler does not support it and the __UTF__ cannot automatically guess the lack of support.
|
|
|
|
See [link boost_test.utf_reference.rt_param_reference.use_alt_stack `use_alt_stack`]
|
|
and [macroref BOOST_TEST_DISABLE_ALT_STACK `BOOST_TEST_DISABLE_ALT_STACK`] for more details.
|
|
[endsect]
|
|
|
|
[endsect]
|