Boost C++ Libraries

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

libs/test/doc/closing_chapters/change_log.qbk

[/
 / Copyright (c) 2013 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 Change log]

Boost.Test releases:

* [link ref_CHANGE_LOG_3_15 Boost.Test v3.15 / boost 1.79]
* [link ref_CHANGE_LOG_3_14 Boost.Test v3.14 / boost 1.74]
* [link ref_CHANGE_LOG_3_13 Boost.Test v3.13 / boost 1.73]
* [link ref_CHANGE_LOG_3_12 Boost.Test v3.12 / boost 1.72]
* [link ref_CHANGE_LOG_3_11 Boost.Test v3.11 / boost 1.71]
* [link ref_CHANGE_LOG_3_10 Boost.Test v3.10 / boost 1.70]
* [link ref_CHANGE_LOG_3_9 Boost.Test v3.9 / boost 1.69]
* [link ref_CHANGE_LOG_3_8 Boost.Test v3.8 / boost 1.68]
* [link ref_CHANGE_LOG_3_7 Boost.Test v3.7 / boost 1.67]
* [link ref_CHANGE_LOG_3_6 Boost.Test v3.6 / boost 1.65]
* [link ref_CHANGE_LOG_3_5 Boost.Test v3.5 / boost 1.64]
* [link ref_CHANGE_LOG_3_4 Boost.Test v3.4 / boost 1.63]
* [link ref_CHANGE_LOG_3_3 Boost.Test v3.3 / boost 1.62]
* [link ref_CHANGE_LOG_3_2 Boost.Test v3.2 / boost 1.61]
* [link ref_CHANGE_LOG_3_1 Boost.Test v3.1 / boost 1.60]
* [link ref_CHANGE_LOG_3_0 Boost.Test v3 / boost 1.59]

[#ref_CHANGE_LOG_3_15][h4 Boost.Test v3.15 / boost 1.79]

[h5 New features]

[h5 Bugfixes and feature requests]

# [github_issue 268] Clang warning generated by dataset grid operation in C++20 mode
# [github_issue 272] Uninitialized memory in `framework_init_observer_t`
# [github_issue 284] Undefined behavior in `basic_cstring<CharT>::trim_right`
# [github_issue 297] `BOOST_TEST_GLOBAL_FIXTURE` documentation misleading
# [github_issue 305] boost test documentation tells users to file bugs with decommissioned Trac.

# [pull_request 286] fix uninitilized variable in `framework_init_observer_t`
# [pull_request 301] UB comparing unrelated pointers in `priority_order`
# [pull_request 275] Replace anonymous `enum` arity with `static constexpr`
# [pull_request 278] Use `boost_test_print_type` customization point in `lazy_ostream`
# [pull_request 281] Export `execution_aborted` exception to allow catching it from outside the DLL

[#ref_CHANGE_LOG_3_14][h4 Boost.Test v3.14 / boost 1.74]

[h5 New features]

* Now able to detect when running under a debugger on macOS/iOS. When running under a debugger, Boost.Test does not
  try to catch system errors and the behaviour is the same as if the command line [link boost_test.utf_reference.rt_param_reference.catch_system `catch_system_error`]
  option was set to `no`. Thanks to [@https://github.com/thughes Tom Hughes] for this feature.
* Adding support for Embarcadero C++ clang-based compilers, thanks to [@https://github.com/eldiener Edward Diener]

[h5 Bugfixes and feature requests]

# [github_issue 264] GCC suggest-override warnings
# [github_issue 269] Deprecated bind placeholders in tests

# [pull_request 142] Make `under_debugger` work on apple (iOS/macOS)
# [pull_request 266] Changes for Embarcadero C++ clang-based compilers
# [pull_request 267] Use macOS API only on macOS


[#ref_CHANGE_LOG_3_13][h4 Boost.Test v3.13 / boost 1.73]

[h5 New features]

* It is now possible to combine tolerance indication, user message and collection comparison modifier in a single `BOOST_TEST` expression

  ``
  std::vector<double> v1 = f();
  std::vector<double> v2{1.1, 1.19};
  BOOST_TEST(v1 == v2, boost::test_tools::tolerance( 1e-3 ) << "comparison to ground truth failed" << boost::test_tools::per_element());
  ``

[h5 Bugfixes and feature requests]

# [github_issue 173] Compare collections of floating point values with tolerance
# [github_issue 179] `test_tools-test` failed on some archs
# [github_issue 220] Support for cuda `nvcc`
# [github_issue 221] Coverity security issue (minor) (`umask`)
# [github_issue 235] Ugly GCC `-Wattributes` warnings that cannot be suppressed using /included/ variant
# [github_issue 237] Clang-cl's `-Wdelete-non-abstract-non-virtual-dtor` triggered by `test_case_gen`
# [github_issue 241] warning: comparing floating point with == or != is unsafe `[-Wfloat-equal]`
# [github_issue 245] code coverity test defect
# [github_issue 246] Incorrect usage of `BOOST_HEADER_DEPRECATED`
# [github_issue 251] Context message are always printed if both HRF and Junit loggers are enabled
# [github_issue 253] Invalid XML log is generated by `BOOST_AUTO_TEST_CASE_TEMPLATE` when tests are skipped
# [github_issue 254] Console colors are not restored on Windows
# [github_issue 263] Windows: Header-only mode with multiple translation units requires `BOOST_TEST_NO_LIB`

# [pull_request 41] Fix: activate virtual destructors for all `msvc` versions
# [pull_request 114] Silence unreachable code warning in MSVC (`/W4`)
# [pull_request 187] enable `BOOST_TEST` with tolerance and user-message (through [github_issue 173])
# [pull_request 239] Fix unused variable warning in `unit_test_main.ipp`
# [pull_request 247] Use `__linux__` instead of `__linux`
# [pull_request 252] Fix compilation issue due to deleted `std::basic_ostream::operator<<` from `wchar_t`
# [pull_request 259] Avoid deprecated bind placeholders in global namespace
# [pull_request 265] Suppress the unused parameter warning for `root_test_unit_id`

# [ticket 11107] A lot of warnings on MSVC due to protected destructor being non-virtual
# [ticket 12072] Lots of `C4265` warnings in test when using Visual Studio 2015 (duplicates [ticket 11107])

[#ref_CHANGE_LOG_3_12][h4 Boost.Test v3.12 / boost 1.72]

[h5 New features]

* Support for C++17 `std::string_view` has been added.
* Better diagnostic on `boost::exception` and no rtti mode (thanks to Mikhail Pilin / [pull_request 234])

[h5 Bugfixes and feature requests]

# [github_issue 206] compile-time disabled test not correctly handled by junit log
# [github_issue 217] Data test cases fail with `bool` initializer list
# [github_issue 223] Unable to filter test by name (`-t`, `--run_test`) if template type contains multiple parameters
# [github_issue 229] Random shuffle deprecated

# [pull_request 227] Add `printf` format checking attribute to `report_error`
# [pull_request 231] OpenBSD is missing `SI_ASYNCIO` and `SI_MESGQ`
# [pull_request 232] fix timeout in windows
# [pull_request 234] `boost::diagnostic_information()` works in no `rtti` mode

[#ref_CHANGE_LOG_3_11][h4 Boost.Test v3.11 / boost 1.71]

[h5 New features]
* Now `BOOST_TEST` can be used to compare abstract types

[h5 Breaking changes]

* Marking more headers as deprecated: this might break some compilations
  depending on the warning policies.

[h5 Bugfixes and feature requests]

# Fixing a small bug on named timers (Windows only). The bug is visible when
  several test modules are executed in parallel on the same machine.

# [github_issue 209] `BOOST_TEST_CHECK` can't compare abstract classes using gcc
# [github_issue 218] Default file name (for logger output files)

# [pull_request 219] Commented out unused argument name (`stack_decorator::apply`)
# [pull_request 224] Add `BOOST_HEADER_DEPRECATED` to deprecated headers

[#ref_CHANGE_LOG_3_10][h4 Boost.Test v3.10 / boost 1.70]

[h5 New features]
* New documentation section about [link boost_test.runtime_config.custom_command_line_arguments custom command line]
  arguments
* [link boost_test.tests_organization.test_cases.test_case_generation.datasets.dataset_interface Custom datasets]
  are not required to declare a inner type `sample` anymore
* Boost.Test does not depend on Boost.Timer any more (which was pulling also Boost.Chrono
  and Boost.System as transitive dependencies).
* Now Boost.Test raises an exception when the test case times-out on Windows. Prior to this release,
  times-out on Windows were not failing the test cases. Note that signaling is not available on Windows,
  and it is not possible to interrupt a test even in case of time out.
* Time-out now applies to test-suites as well: a test-suite is marked as timed-out if it exceeds the allocated
  time. The test units that were not executed at the time-point of the time-out are skipped.
* It is now possible to pass several values for the same context via the tool
  __BOOST_TEST_CONTEXT__.
* A new macro __BOOST_TEST_INFO_SCOPE__ let define a context for the current scope in a sticky way.
* It is now possible to use [link boost_test.testing_tools.extended_comparison.floating_point floating point]
  comparison without being required to cast both operands to floating point types. Now Boost.Test uses floating
  point comparisons for expressions such as

  ``
  BOOST_TEST(3.0001 == 3);
  ``

  See [link boost_test.testing_tools.extended_comparison.floating_point.type_promotion_of_the_operands this section]
  for more information.

[h5 Breaking changes]
* Boost.Test `minimal.hpp` is now showing a deprecation warning. `minimal.hpp` has been
  deprecated for a long time already, and will be removed in the near future. Please
  switch to eg. the header only variable of Boost.Test. Tests using `minimal.hpp` can
  readily be converted to the header variant. For instance, the following code:

  ``
  #include <boost/test/minimal.hpp>
  int test_main( int, char *[] )
  {
    ...
  }
  ``

  may be rewritten as:

  ``
  #include <boost/test/included/unit_test.hpp>
  BOOST_AUTO_TEST_CASE(test_main)
  {
    ...
  }
  ``
* The floating point comparison behavior change may use this type of comparison while previously
  using straight relational operator comparison. In particular this may causes ['new warnings].

* the member function [memberref boost::unit_test::unit_test_log_formatter::log_build_info] has slightly changed
  to accept an additional boolean argument. If you have a custom logger, you will need to update its signature.

[h5 Bugfixes and feature requests]

# [github_issue 133] Timeout effect on Windows
# [github_issue 138] expected_failures doesn't work for `BOOST_DATA_TEST_CASE`
# [github_issue 141] Support for Boost.MP11 and Boost.Hana type lists
# [github_issue 157] Test name should handle `const`-`volatile` specifiers
# [github_issue 160] suppress `-Wformat-overflow` when optimization is enabled on GCC 8.2.0
# [github_issue 174] `UBSAN` identified a problem at exit time by `gcc-8` only
# [github_issue 176] `[snippet_dataset1_3]` seems to be broken
# [github_issue 177] `boost_check_equal-str-test` failed on `llvm`
# [github_issue 180] Unreachable code warning on MSVC builds in test matrix
# [github_issue 181] `doc_example22` (and `23`) are expected to fail, but do not on clang with release variant builds
# [github_issue 194] `master_test_suite` declared twice
# [github_issue 196] junit report: test error is also reported as failure
# [github_issue 198] Support `BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK` et al
# [github_issue 199] Runtime `type_mismatch` after upgrade to `1.69`
# [github_issue 202] `boost/timer.hpp` is deprecated
# [github_issue 203] Test cases with datasets and fixtures don't support flexible fixture interface
# [github_issue 204] Feature Request: Allow specifying timeouts for test cases with datasests.
# [github_issue 208] Incorrect handling of timed-tests on Windows
# [github_issue 211] `windows.h` should be lower case
# [github_issue 212] Comment `ar` parameter of `assertion_result` to avoid warning
# [github_issue 213] `BOOST_SYMBOL_VISIBLE` cannot be used for `enums` with Sun Studio

# [pull_request 171] Correct library name in test runner help screen
# [pull_request 172] Check for non-used variables when `NDEBUG` is defined
# [pull_request 182] fix use of `bind1st` in `example 12`
# [pull_request 183] remove superfluous semicolon in `example 04`
# [pull_request 184] fix example to use the correct variable and avoid unused variable warning
# [pull_request 185] Added CI framework
# [pull_request 190] fix warning on gcc-7.3 in cygwin claiming `master_test_suite` is declared differently
# [pull_request 195] Fix MinGW compilation problems
# [pull_request 197] Feature Request: `BOOST_TEST_CONTEXT` that doesn't require introducing a new scope with braces
# [pull_request 205] Fix MinGW `vsnprintf` compile errors and warnings
# [pull_request 214] Fixes an issue with sun_cc lacking the __global attribute for enums

# [ticket 7397] Boost.Test, since boost `1.48` is using the deprecated `Boost.Timer` class (solved via [github_issue 202])
# [ticket 9434] error: `namespace boost::timer {}` re-declared as different kind of symbol (solved via [github_issue 202])
# [ticket 13106] `libs/test/tools/console_test_runner` does not compile
# [ticket 13418] Request: allow general typelist types in `BOOST_AUTO_TEST_CASE_TEMPLATE()`


[#ref_CHANGE_LOG_3_9][h4 Boost.Test v3.9 / boost 1.69]

[h5 New features]
* Official support of header-only variant of Boost.Test with multiple translation units. This feature
  was available but needed to be properly documented ([link boost_test.adv_scenarios.single_header_customizations.multiple_translation_units here]
  and [link boost_test.usage_variants here]).
* It is now possible to manually add a test case by specifying its name, with __BOOST_TEST_CASE_NAME__
* Better logging of messages in `boost::exception`

[h5 Bugfixes and feature requests]

# [github_issue 149] Setting color_output=no does not disable the output of color format codes
# [github_issue 150] Some headers fail to compile independently
# [github_issue 156] `close_at_tolerance` always returns `false` for comparisons of infinity
# [github_issue 158] Detecting `boost_test_print_type` does not work when testing a type with an explicit conversion to `bool`
# [github_issue 163] Significant start slowdown on MSVC x64/Debug after upgrade to `v1.68.0`

# [pull_request 147] Catch block for `boost::exception` appears after `std::exception` in `execution_monitor::execute()`
# [pull_request 148] Colored output contradiction
# [pull_request 151] Fix warning: `BOOST_CLANG` is not defined, evaluates to `0`
# [pull_request 154] When specifying `--color_output=no`, don't output color codes
# [pull_request 161] add a self-containment test

# [ticket 13380] data-driven tests' join operator `+` corrupts first column (duplicates [ticket 12216])
# [ticket 13625] Boost.test fail to compile with `-Werror=missing-declarations` on some architectures
# [ticket 13637] Fix for Bug [ticket 12597] causes a problem with `BOOST_TEST_CASE`


[#ref_CHANGE_LOG_3_8][h4 Boost.Test v3.8 / boost 1.68]

[h5 New features]
* The tests generated from a dataset are now instantiated during the framework setup. This
  let the dataset generator access the `argc` and `argv` of the master test suite. For indicating
  a dataset that should be instantiated in a delayed manner, a new `data::make_delayed` helper has
  been introduced.
* It is now possible to create a dataset with `data::make`, with variable number of arguments.
  As the datasets are monomorphic, it should be possible to cast all elements to the first element type.

[h5 Breaking changes]
* the [link boost_test.tests_organization.test_tree.master_test_suite `master_test_suite_t`] is not copyable anymore.
* As datasets can now be delayed, it might be that additional copies of the dataset arguments are performed.
  This is especially the case for datasets created out of an `std::initializer_list`.

[h5 Bugfixes and feature requests]
# [pull_request 143] Fix exception_api.run-fail.cpp doc example
# [pull_request 145] Fix build of library on recent Cygwin editions
# [ticket 12095] disabling test with precondition leads to error
# [ticket 12953] access to `master_test_suite().{argc, argv}`
# [ticket 13504] `[Boost::Test]` short form of `catch_system_errors` not working
# [ticket 13525] Boost Test 1.67.0: Compilation error with GCC 4.6.3
# [ticket 13528] Boost Test 1.67 crashes when the `--report_sink` command-line parameter is used


[#ref_CHANGE_LOG_3_7][h4 Boost.Test v3.7 / boost 1.67]

[h5 Breaking changes]

* Now colour is on by default for the output streams that are either `std::cout` or `std::cerr`. This can be
  disabled by passing [link boost_test.utf_reference.rt_param_reference.color_output `--no_color_ouput`] (or just `--no_color`)
  to the command line.
* Adding test cases with the same name to the same test suite is reported as an error. This impacts
  [link boost_test.tests_organization.test_cases.test_organization_templates template] and
  [link boost_test.tests_organization.test_cases.param_test parametrized] test cases, as well as manually
  registered tests. Make sure you have no duplicate names.

[h5 New features]
* Colour output on Windows
* Improved and clearer command line help
* `BOOST_AUTO_TEST_CASE_TEMPLATE` now accepts a sequence of types in an `std::tuple`

[h5 Bugfixes and feature requests]
# [pull_request 112] Deliberate-failure tests shouldn't be optimized
# [pull_request 118] Update VxWorks support
# [pull_request 118] `[clang]` Fix `[-Wc++11-narrowing]` error
# [pull_request 121] fix compiler warning
# [pull_request 122] Fix some fallthrough warnings with `gcc >= 7`
# [pull_request 125] Prevent 2 unused parameter warnings
# [pull_request 127] Silence 'unused variable' warning
# [pull_request 134] Fix `stdcerr` file creation on shutdown
# [pull_request 136] Change `Windows.h` include to all-lowercase (MinGW)
# [ticket 12092] Request: allow `std::tuple` typelists in `BOOST_AUTO_TEST_CASE_TEMPLATE`
# [ticket 12596] Sanitize metacharacters in test names
# [ticket 12597] Report tests with clashing names
# [ticket 12969] Problem linking `print_helper_t<nullptr_t>` under Clang
# [ticket 13058] `errors.hpp` in Boost Test requires warning `C4946` to be `off`
# [ticket 13149] Dependency decorators on parent suites
# [ticket 13170] `BOOST_AUTO_TEST_CASE_TEMPLATE` don't want `typedef` for list
# [ticket 13181] Boost test can't compare classes which have `begin` and `end` but not `const_iterator`
# [ticket 13371] Use-after-free with `--log_sink=file`
# [ticket 13387] Test header fails to compile
# [ticket 13398] Log format JUNIT generates invalid XML files
# [ticket 13407] Boost.Test appears to crash under Cygwin
# [ticket 13435] `BOOST_TEST_GLOBAL_CONFIGURATION` (result report shutdown time)
# [ticket 13443] Boost.Test data driven test fails to compile when number of samples greater than 9

[#ref_CHANGE_LOG_3_6][h4 Boost.Test v3.6 / boost 1.65]

[h5 Breaking changes]
* __BOOST_GLOBAL_FIXTURE__ is flagged as deprecated and will be removed in a later version
* Using test assertions and macros is not allowed when used inside __BOOST_GLOBAL_FIXTURE__. Please use __BOOST_TEST_GLOBAL_FIXTURE__
  instead (see below).
* the interface for loggers has slightly changed to take into account the current log level. This is for addressing [ticket 12631].

[h5 New features]
* VS2017 / C++17 compatibility (thanks to Daniela Engert)
* Deprecating __BOOST_GLOBAL_FIXTURE__ in favor of __BOOST_TEST_GLOBAL_FIXTURE__ and __BOOST_TEST_GLOBAL_CONFIGURATION__. This
  helps separating the logic of the fixtures associated to the master test suite, from the one used for setting up the logging
  and reporting facility, and results in a general cleaner design.
* It is possible to use now the __BOOST_TEST__ check to comparing a collection with respect to regular arrays. See
  [link ref_boost_test_coll_c_arrays this section] for more details.

[h5 Bugfixes and feature requests]
# [pull_request 106] replace deprecated binders and adapters, and `random_shuffle` by more modern equivalents
# [ticket 5282] Test fixtures do not support virtual inheritance
# [ticket 5563] using a test macro in a global fixture crashes Boost.Test
# [ticket 11471] array is a sequence
# [ticket 11962] `BOOST_TEST_MESSAGE` in fixture constructor - invalid XML
# [ticket 12228] Some test headers fail to compile independently
# [ticket 12631] `BOOST_TEST_MESSAGE` generates incorrect output when used in `BOOST_DATA_TEST_CASE`
# [ticket 13011] `BOOST_TEST` broken with floating point relational operators

[#ref_CHANGE_LOG_3_5][h4 Boost.Test v3.5 / boost 1.64]

[h5 New features]
* Now Boost.Test provides [link ref_log_output_custom_customization_point customization points] for logging user defined types:
  this solution is less intrusive than forcing the definition of `operator<<` for a specific type.
* [link boost_test.test_output.log_formats.log_junit_format JUnit output format] can now have a
  [link boost_test.test_output.log_formats.test_log_output log-level] set between `success` and
  `non-fatal error`, and defaults to `general information`.
* [link boost_test.test_output.log_formats.log_junit_format JUnit output format] is now more
  efficient in case a lot of checks are done in a test module.

[h5 Bugfixes and feature requests]
# [pull_request 107] `BOOST_NO_EXCEPTIONS` typo making `throw_exception` unusable under some circumstances
# [pull_request 108] Change capital variable names to lowercase
# [ticket 11756] boost.Test: non standards compliant use of `FE_*` macros (unable to compile boost test library on FPU-less arches) (reopened)
# [ticket 12540] Provide customization point for printing types in tests
# [ticket 12712] `BOOST_AUTO_TEST_SUITE`: Generate unique names by using `__COUNTER__`
# [ticket 12748] Boost.Test defines a variable called `VERSION`
# [ticket 12778] Boost.Test is broken against left shift operator in certain cases (`nullptr` issue)

[#ref_CHANGE_LOG_3_4][h4 Boost.Test v3.4 / boost 1.63]

[h5 Breaking changes]
# Now colons that appear in test case names are replaced with underscores. This affect mainly the
  [link boost_test.tests_organization.test_cases.test_organization_templates template/typed test cases].
  The change is needed since the colon '`:`' is interpreted as a filter separators since 1.62, and it is
  otherwise not possible to execute the tests reported by `--list_content`. See [ticket 12531] for more details.

[h5 New features]
* Now [link boost_test_coll_perelement `per_element`] and [link boost_test_coll_default_lex `lexicographic`] modifiers of __BOOST_TEST__
  can also be applied to string comparison. See
  [link boost_test.testing_tools.extended_comparison.strings string comparison] for more details.

[h5 Bugfixes and feature requests]
# [pull_request 103] Syntactic change silences latest gcc warnings
# [pull_request 105] Fix unused parameter warnings/errors with gcc 6
# [ticket 11756] boost.Test: non standards compliant use of `FE_*` macros (unable to compile boost test library on FPU-less arches)
# [ticket 11907] Why does `BOOST_TEST()` treat `std::string` as a collection?
# [ticket 12339] Propose users given way to disable blink in colour output
# [ticket 12506] typo in Boost.test `report_sink` description
# [ticket 12507] Boost.test `--report_sink` parameter broken
# [ticket 12530] No way to find out Boost.Test version without running any tests
# [ticket 12531] `--run_test` in Boost 1.62 does not accept test names which contain ':'

[#ref_CHANGE_LOG_3_3][h4 Boost.Test v3.3 / boost 1.62]

[h5 New features]
* Boost.Test now treats each sample of a dataset test case as being a uniquely named test case under the same test suite,
  which enables the (re)run of one particular sample from the command line interface. See
  [link boost_test.tests_organization.test_cases.test_case_generation.datasets_auto_registration.samples_and_test_tree here]
  for more details,
* Boost.Test learned to interpret ':' as a separator for the test filters: the string passed to
  [link boost_test.utf_reference.rt_param_reference.run_test `--run_test`]
  generates tokens as if `--run_test` has been repeated, which enables the set up of several test filters
  through the associated environment variable `BOOST_TEST_RUN_FILTERS`
* the __UTF__ learned to log the messages in the xUnit/JUNIT log format.
  See [link boost_test.test_output.log_formats.log_junit_format here] for more details.
* the __UTF__ learned to have several loggers at the same time, each of which with their own log level and log sink.
  See the associated command line switch [link boost_test.utf_reference.rt_param_reference.logger `--logger`] and
  corresponding environment variable `BOOST_TEST_LOGGER` for more details.
* loggers are now able to indicate their default output stream and log level.

[h5 Bugfixes and feature requests]
# [pull_request 81] Possibility to remove the support of the alternative stack at compilation time. See
  [link boost_test.utf_reference.link_references.config_disable_alt_stack `BOOST_TEST_DISABLE_ALT_STACK`] for more details.
# [ticket 8707] Provide Standard xUnit XML Output from Boost Test
# [ticket 8834] Boost Test should be able to generate report in both XML and HRF together
# [ticket 11128] `[bb10/qnx failures]` Build error
# [ticket 11845] Ability to generate the unique and stable test name for every data set in `BOOST_DATA_TEST_CASE`
# [ticket 11859] Wrong handling of "," in Run-Parameters
# [ticket 12024] boost test depends on nonexisting `abi::__cxa_demangle` on android
# [ticket 12093] Boost 1.60.0: Build fails (gcc 4.6)
# [ticket 12103] Fix for gcc bug 58952 (`getchar()` is defined as a macro in `uClibc`)
# [ticket 12224] Crash on MSVC with RTTI disabled
# [ticket 12241] Data-driven testing over a range of `std::tuple` has broken
# [ticket 12257] Incorrect line numbers in `test_units` generated from `test_case_gen`
# [ticket 12378] Compilation errors with clang 3.8

[#ref_CHANGE_LOG_3_2][h4 Boost.Test v3.2 / boost 1.61]

[h5 New features]
* now datasets support any [link boost_test.tests_organization.test_cases.test_case_generation.datasets arity], using the
  variadic template support of the compiler.
* now datasets support fixtures through `BOOST_DATA_TEST_CASE_F`, see
  [link boost_test.tests_organization.test_cases.test_case_generation.datasets here] for more details
* now datasets honors move semantics of the types used for samples

[h5 Bugfixes and feature requests]
# [ticket 6767] Use of namespace qualifier with floating point exception functions breaks if they are macros
# [ticket 8905] `boost/test/impl/debug.ipp`: Ignores return value from `WaitForSingleObject`
# [ticket 9443] Runtime parameter Random seed for random order of test cases not respected correctly
# [ticket 11854] Add fixture support in `BOOST_DATA_TEST_CASE`
# [ticket 11887] `BOOST_TEST(3u == (std::max)(0u, 3u))` fails
# [ticket 11889] `BOOST_DATA_TEST_CASE` fails to compile for 4D and higher dimensional grids
# [ticket 11983] Boost Test XML Report contains unescaped XML characters

[#ref_CHANGE_LOG_3_1][h4 Boost.Test v3.1 / boost 1.60]

[h5 New major features]
* improved API for datasets
  * it is now possible to use initializer lists
  * the use of `make` as top left dataset is not necessary anymore
* improved command line interface
  * clearer help commands
  * now proposes closest matching command in case of ambiguity
  * reports invalid or ambiguous parameters: this might break existing calls when user defined commands are
    provided to the test module. The following calling convention should be adopted:
    * if the test module uses user supplied commands, those should be passed after an empty token `--`
    * all boost.test related commands should be passed before `--`, if any

    Example:
    the call
    ``
    test_module --user-arg1=xy --log_level=test_suite
    ``
    should be rewritten to
    ``
    test_module --log_level=test_suite -- --user-arg1=xy
    ``

[h5 Bugfixes and feature requests]
# [ticket 3384] Double-quoted arguments including spaces are divided by Boost.Test.
# [ticket 3897] Test framework does not include `<osreldate.h>` before testing `__FreeBSD_version` (fixed in 1.59)
# [ticket 6032] Program options within `init_unit_test_suite` are incorrect when using path and whitespaces
# [ticket 6859] Boost.Test eats away last empty command line parameter
# [ticket 7257] Boost.Test alters and does not restore `ostream` precision after any Test macro (fixed in 1.59)
# [ticket 9228] Patch to make Boost.Test work with RTTI disabled (fixed in 1.59)
# [ticket 10317] boost::test corrupts contents of `argv` if a paramter contains whitespace
# [ticket 11279] invalid parameters should be reported
# [ticket 11478] Boost Test Exception Assert Failure has poor message
# [ticket 11571] Can't compile `BOOST_TEST( ..., per_element() )` comparison of `vector<string>`
# [ticket 11623] Clang rejects some simple `BOOST_TEST()` statements
# [ticket 11624] `BOOST_TEST( 0.0 == 0.0 )` fails under C++11 (GCC and Clang)
# [ticket 11625] `BOOST_TEST( ..., per_element() )` erroneously requires collections are comparable


[#ref_CHANGE_LOG_3_0][h4 Boost.Test v3 / boost 1.59]

[h5 New major features]

* __BOOST_TEST__ generic assertion
* [link boost_test.tests_organization.test_cases.test_case_generation data driven test cases]: supersedes the parametric test case (unary test cases)
* test units [link boost_test.tests_organization.decorators attributes], that allow finer control over test units property and behavior
* logical grouping of the test units using [link boost_test.tests_organization.tests_grouping labels]
* support for declaring [link boost_test.tests_organization.tests_dependencies dependencies] over test cases
* attributes for [link boost_test.tests_organization.enabling enabling or disabling] test execution based on static, compile-time or runtime rules
* extended [link boost_test.runtime_config.test_unit_filtering unit test filtering] from the command line (negation, labels, ...)
* color output with [link boost_test.utf_reference.rt_param_reference.color_output `color_output`]
* test bed listing with [link boost_test.utf_reference.rt_param_reference.list_content `list_content`]
* rewritten documentation using quickbook

[/* now having a more accurate timing (see [ticket 7397]) for the tests. Old format is still available through the command line option __param_deprecated_timer_format__
  in case you experience problems with the new output. ]

[h5 Bugfixes and feature requests]
[/ pending
# [ticket 1136] Let BOOST_CHECK_EQUAL support `std::wstring`
# [ticket 4222] `feenablexcept` does not exist on mac
# [ticket 7397] Boost.Test, since boost 1.48 is using the deprecated Boost.Timer class - it should be updated to use the new class
]
# [ticket 2018] Error in the documentation chapter "Runtime parameters reference"
# [ticket 2450] equations in Floating-point comparison algorithms html are not rendered properly
# [ticket 2600] Unit Test Framework - missed documentation
# [ticket 2717] `BOOST_<level>_EQUAL_COLLECTION` docs typo
# [ticket 2759] Typos in test new-year-resolution.html
# [ticket 3182] `_CrtSetReportFile` can be used to redirect memory leaks report
# [ticket 3316] Access violation when trying to log from `init_tests_func`
# [ticket 3392] Boost::Test: Wrong contents for documentation of the `BOOST_TEST_PASSPOINT` macro
# [ticket 3402] Invalid define name in documentation (duplicates #[ticket 2717])
# [ticket 3445] incorrect link in the docs
# [ticket 3463] `GT` is GREAT!
# [ticket 3542] Bug in documentation of detect_memory_leak parameter (duplicates #[ticket 2018])
# [ticket 3481] Boost Testing doesn't work under Sun Solaris Containers (duplicates #[ticket 3592])
# [ticket 3495] Boost::Test enters endless loop when running in `vserver` environment (duplicates #[ticket 3592])
# [ticket 3592] under_debugger() goes into infinite loop
# [ticket 3595] Typo (duplicates #[ticket 2759])
# [ticket 3623] Boost Test Typo (duplicates #[ticket 2759])
# [ticket 3664] `SIGCHLD` always considered fatal error
# [ticket 3784] Documentation errors in Execution Monitor Compilation
# [ticket 3785] Documentation errors in Program Execution Monitor implementation
# [ticket 3811] global namespace pollution
# [ticket 3834] doc: probably incorrect HTML rendering (duplicates #[ticket 2450])
# [ticket 3896] erroneous documentation in boost test command line parameter description
# [ticket 3932] Error in `BOOST_<level>_GT` description (duplicates #[ticket 3463])
# [ticket 3938] doc: incorrect macro name (duplicates #[ticket 2759])
# [ticket 3964] Documentation for `BOOST_<level>_CLOSE_FRACTION` is incorrect
# [ticket 3978] Failed to completely redirect TestLog to file, bugfix appended
# [ticket 3979] `<boost/test/exception_safety.hpp>` requires additional includes
# [ticket 4161] spelling mistakes...
# [ticket 4275] Documentation error Boost.Test (duplicates #[ticket 2717])
# [ticket 4389] Enable boost_test to run specific tests with any required dependent tests.
# [ticket 4434] `BOOST_AUTO_EST_CASE` typos in docs
# [ticket 4587] Broken link in website
# [ticket 4806] Invalid link (examples not showing up in documentation)
# [ticket 4911] ENH: boost.test output the exception real type name.
# [ticket 4923] Missing semicolon in documentation example
# [ticket 4924] Minor typo in Boost::Test docs
# [ticket 4982] Boost.Test has misspelled Gennadiy Rozental e-mail address
# [ticket 5008] Boost.Test does not do check-pointing of entry/exit of test cases
# [ticket 5036] Boost.Test VC memory leak report should direct to `stderr`
# [ticket 5262] Run tests by name utility doesn't support negation
# [ticket 5374] Errors from Boost.Test are no more shown in the Error list in VS2010
# [ticket 5412] XML formatter in test library processes strings with subsequences `]]>` incorrectly
# [ticket 5563] using a test macro in a global fixture crashes Boost.Test
# [ticket 5582] There is a memory leak in the `BOOST_AUTO_TEST_CASE_TEMPLATE`
# [ticket 5599] boost::test documentation gives poor instruction
# [ticket 5718] broken link to unit testing framework examples
# [ticket 5729] Missing static_cast in fpt_limits
# [ticket 5870] The warning stack is not maintained
# [ticket 5972] Support program option to only dump the test-tree in text to output stream
# [ticket 6002] Failed to completely redirect TestLog to file (duplicates)
# [ticket 6071] Boost Test (Boost 1.46.0) GCC 4.6.1 error: ambiguous overload for ‘operator[]’
# [ticket 6074] warnings-as-errors not usable with Boost.test in release mode
# [ticket 6161] SunOS: bad `putenv` declaration (duplicates [ticket 6766])
# [ticket 6766] incorrect declaration for `putenv` in `config.hpp`
# [ticket 6712] Eliminate warnings with GCC
# [ticket 6748] Link in the documentation points to wrong page
# [ticket 7046] Output full error message, not just 512 chars
# [ticket 7136] Correct documentation for `BOOST_<level>_CLOSE_FRACTION` is not reflected into released documents
# [ticket 7410] Test Units (Cases and Suites) in Boost.Test do not capture `__FILE__` and `__LINE__` at declaration point making it impossible to provide source file linking using external test management tools
# [ticket 7894] Boost.Test documentation contains no linking instructions
# [ticket 8201] Broken link in document
# [ticket 8272] `BOOST_REQUIRE_CLOSE` fails to compile with `boost::multiprecision::cpp_dec_float_100` (duplicates #[ticket 11054])
# [ticket 8467] Incorrect link in document (duplicates #[ticket 6748])
# [ticket 8679] Boost.Test pollutes boost namespace with it's own `enable_if/disable_if` templates
# [ticket 8862] Boost.Test typo in documentation
# [ticket 8895] English error in test collection comparison
# [ticket 9179] Documentation: broken link (unable to find =const_string.hpp/const_string_test.cpp=)
# [ticket 9272] boost::test `BOOST_<level>_GT` documentation bug (duplicates #[ticket 3463])
# [ticket 9390] Incomplete `BOOST_TEST_DONT_PRINT_LOG_VALUE`
# [ticket 9409] Some source code examples are missing
# [ticket 9537] const_string_test example fails
# [ticket 9539] Floating-point comparison algorithms aren't formatted correctly
# [ticket 9581] Squassabia reference link gives 404 not found
# [ticket 9960] Warnings on Clang
# [ticket 10256] [boost test] - issue: `sigaltstack`
# [ticket 10318] Minor documentation fix
# [ticket 10394] Broken links in Boost Test documentation
# [ticket 10888] Assertion failures don't show up in the errors pane in VS 2010, VS 2012 or VS 2013 (duplicates)
# [ticket 11054] Floating-point comparison of multiprecision values fails if expression template is on
# [ticket 11347] `DS` identifier causes test failures in `doc/examples/dataset_example*.cpp`
# [ticket 11358] Boost.Test v3 warning could helpfully be suppressed.
# [ticket 11359] `BOOST_CHECK_EQUAL_COLLECTIONS`: can't control output operator (duplicates #9390)
# [ticket 11425] use-of-uninitialized-value (obsolete)

[endsect]