123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- [/
- / 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]
|