• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[/
2 / Copyright (c) 2013 Boost.Test contributors
3 /
4 / Distributed under the Boost Software License, Version 1.0. (See accompanying
5 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 /]
7
8[section Change log]
9
10Boost.Test releases:
11
12* [link ref_CHANGE_LOG_3_14 Boost.Test v3.14 / boost 1.74]
13* [link ref_CHANGE_LOG_3_13 Boost.Test v3.13 / boost 1.73]
14* [link ref_CHANGE_LOG_3_12 Boost.Test v3.12 / boost 1.72]
15* [link ref_CHANGE_LOG_3_11 Boost.Test v3.11 / boost 1.71]
16* [link ref_CHANGE_LOG_3_10 Boost.Test v3.10 / boost 1.70]
17* [link ref_CHANGE_LOG_3_9 Boost.Test v3.9 / boost 1.69]
18* [link ref_CHANGE_LOG_3_8 Boost.Test v3.8 / boost 1.68]
19* [link ref_CHANGE_LOG_3_7 Boost.Test v3.7 / boost 1.67]
20* [link ref_CHANGE_LOG_3_6 Boost.Test v3.6 / boost 1.65]
21* [link ref_CHANGE_LOG_3_5 Boost.Test v3.5 / boost 1.64]
22* [link ref_CHANGE_LOG_3_4 Boost.Test v3.4 / boost 1.63]
23* [link ref_CHANGE_LOG_3_3 Boost.Test v3.3 / boost 1.62]
24* [link ref_CHANGE_LOG_3_2 Boost.Test v3.2 / boost 1.61]
25* [link ref_CHANGE_LOG_3_1 Boost.Test v3.1 / boost 1.60]
26* [link ref_CHANGE_LOG_3_0 Boost.Test v3 / boost 1.59]
27
28[#ref_CHANGE_LOG_3_14][h4 Boost.Test v3.14 / boost 1.74]
29
30[h5 New features]
31
32* Now able to detect when running under a debugger on macOS/iOS. When running under a debugger, Boost.Test does not
33  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`]
34  option was set to `no`. Thanks to [@https://github.com/thughes Tom Hughes] for this feature.
35* Adding support for Embarcadero C++ clang-based compilers, thanks to [@https://github.com/eldiener Edward Diener]
36
37[h5 Bugfixes and feature requests]
38
39# [github_issue 264] GCC suggest-override warnings
40# [github_issue 269] Deprecated bind placeholders in tests
41
42# [pull_request 142] Make `under_debugger` work on apple (iOS/macOS)
43# [pull_request 266] Changes for Embarcadero C++ clang-based compilers
44# [pull_request 267] Use macOS API only on macOS
45
46
47[#ref_CHANGE_LOG_3_13][h4 Boost.Test v3.13 / boost 1.73]
48
49[h5 New features]
50
51* It is now possible to combine tolerance indication, user message and collection comparison modifier in a single `BOOST_TEST` expression
52
53  ``
54  std::vector<double> v1 = f();
55  std::vector<double> v2{1.1, 1.19};
56  BOOST_TEST(v1 == v2, boost::test_tools::tolerance( 1e-3 ) << "comparison to ground truth failed" << boost::test_tools::per_element());
57  ``
58
59[h5 Bugfixes and feature requests]
60
61# [github_issue 173] Compare collections of floating point values with tolerance
62# [github_issue 179] `test_tools-test` failed on some archs
63# [github_issue 220] Support for cuda `nvcc`
64# [github_issue 221] Coverity security issue (minor) (`umask`)
65# [github_issue 235] Ugly GCC `-Wattributes` warnings that cannot be suppressed using /included/ variant
66# [github_issue 237] Clang-cl's `-Wdelete-non-abstract-non-virtual-dtor` triggered by `test_case_gen`
67# [github_issue 241] warning: comparing floating point with == or != is unsafe `[-Wfloat-equal]`
68# [github_issue 245] code coverity test defect
69# [github_issue 246] Incorrect usage of `BOOST_HEADER_DEPRECATED`
70# [github_issue 251] Context message are always printed if both HRF and Junit loggers are enabled
71# [github_issue 253] Invalid XML log is generated by `BOOST_AUTO_TEST_CASE_TEMPLATE` when tests are skipped
72# [github_issue 254] Console colors are not restored on Windows
73# [github_issue 263] Windows: Header-only mode with multiple translation units requires `BOOST_TEST_NO_LIB`
74
75# [pull_request 41] Fix: activate virtual destructors for all `msvc` versions
76# [pull_request 114] Silence unreachable code warning in MSVC (`/W4`)
77# [pull_request 187] enable `BOOST_TEST` with tolerance and user-message (through [github_issue 173])
78# [pull_request 239] Fix unused variable warning in `unit_test_main.ipp`
79# [pull_request 247] Use `__linux__` instead of `__linux`
80# [pull_request 252] Fix compilation issue due to deleted `std::basic_ostream::operator<<` from `wchar_t`
81# [pull_request 259] Avoid deprecated bind placeholders in global namespace
82# [pull_request 265] Suppress the unused parameter warning for `root_test_unit_id`
83
84# [ticket 11107] A lot of warnings on MSVC due to protected destructor being non-virtual
85# [ticket 12072] Lots of `C4265` warnings in test when using Visual Studio 2015 (duplicates [ticket 11107])
86
87[#ref_CHANGE_LOG_3_12][h4 Boost.Test v3.12 / boost 1.72]
88
89[h5 New features]
90
91* Support for C++17 `std::string_view` has been added.
92* Better diagnostic on `boost::exception` and no rtti mode (thanks to Mikhail Pilin / [pull_request 234])
93
94[h5 Bugfixes and feature requests]
95
96# [github_issue 206] compile-time disabled test not correctly handled by junit log
97# [github_issue 217] Data test cases fail with `bool` initializer list
98# [github_issue 223] Unable to filter test by name (`-t`, `--run_test`) if template type contains multiple parameters
99# [github_issue 229] Random shuffle deprecated
100
101# [pull_request 227] Add `printf` format checking attribute to `report_error`
102# [pull_request 231] OpenBSD is missing `SI_ASYNCIO` and `SI_MESGQ`
103# [pull_request 232] fix timeout in windows
104# [pull_request 234] `boost::diagnostic_information()` works in no `rtti` mode
105
106[#ref_CHANGE_LOG_3_11][h4 Boost.Test v3.11 / boost 1.71]
107
108[h5 New features]
109* Now `BOOST_TEST` can be used to compare abstract types
110
111[h5 Breaking changes]
112
113* Marking more headers as deprecated: this might break some compilations
114  depending on the warning policies.
115
116[h5 Bugfixes and feature requests]
117
118# Fixing a small bug on named timers (Windows only). The bug is visible when
119  several test modules are executed in parallel on the same machine.
120
121# [github_issue 209] `BOOST_TEST_CHECK` can't compare abstract classes using gcc
122# [github_issue 218] Default file name (for logger output files)
123
124# [pull_request 219] Commented out unused argument name (`stack_decorator::apply`)
125# [pull_request 224] Add `BOOST_HEADER_DEPRECATED` to deprecated headers
126
127[#ref_CHANGE_LOG_3_10][h4 Boost.Test v3.10 / boost 1.70]
128
129[h5 New features]
130* New documentation section about [link boost_test.runtime_config.custom_command_line_arguments custom command line]
131  arguments
132* [link boost_test.tests_organization.test_cases.test_case_generation.datasets.dataset_interface Custom datasets]
133  are not required to declare a inner type `sample` anymore
134* Boost.Test does not depend on Boost.Timer any more (which was pulling also Boost.Chrono
135  and Boost.System as transitive dependencies).
136* Now Boost.Test raises an exception when the test case times-out on Windows. Prior to this release,
137  times-out on Windows were not failing the test cases. Note that signaling is not available on Windows,
138  and it is not possible to interrupt a test even in case of time out.
139* Time-out now applies to test-suites as well: a test-suite is marked as timed-out if it exceeds the allocated
140  time. The test units that were not executed at the time-point of the time-out are skipped.
141* It is now possible to pass several values for the same context via the tool
142  __BOOST_TEST_CONTEXT__.
143* A new macro __BOOST_TEST_INFO_SCOPE__ let define a context for the current scope in a sticky way.
144* It is now possible to use [link boost_test.testing_tools.extended_comparison.floating_point floating point]
145  comparison without being required to cast both operands to floating point types. Now Boost.Test uses floating
146  point comparisons for expressions such as
147
148  ``
149  BOOST_TEST(3.0001 == 3);
150  ``
151
152  See [link boost_test.testing_tools.extended_comparison.floating_point.type_promotion_of_the_operands this section]
153  for more information.
154
155[h5 Breaking changes]
156* Boost.Test `minimal.hpp` is now showing a deprecation warning. `minimal.hpp` has been
157  deprecated for a long time already, and will be removed in the near future. Please
158  switch to eg. the header only variable of Boost.Test. Tests using `minimal.hpp` can
159  readily be converted to the header variant. For instance, the following code:
160
161  ``
162  #include <boost/test/minimal.hpp>
163  int test_main( int, char *[] )
164  {
165    ...
166  }
167  ``
168
169  may be rewritten as:
170
171  ``
172  #include <boost/test/included/unit_test.hpp>
173  BOOST_AUTO_TEST_CASE(test_main)
174  {
175    ...
176  }
177  ``
178* The floating point comparison behavior change may use this type of comparison while previously
179  using straight relational operator comparison. In particular this may causes ['new warnings].
180
181* the member function [memberref boost::unit_test::unit_test_log_formatter::log_build_info] has slightly changed
182  to accept an additional boolean argument. If you have a custom logger, you will need to update its signature.
183
184[h5 Bugfixes and feature requests]
185
186# [github_issue 133] Timeout effect on Windows
187# [github_issue 138] expected_failures doesn't work for `BOOST_DATA_TEST_CASE`
188# [github_issue 141] Support for Boost.MP11 and Boost.Hana type lists
189# [github_issue 157] Test name should handle `const`-`volatile` specifiers
190# [github_issue 160] suppress `-Wformat-overflow` when optimization is enabled on GCC 8.2.0
191# [github_issue 174] `UBSAN` identified a problem at exit time by `gcc-8` only
192# [github_issue 176] `[snippet_dataset1_3]` seems to be broken
193# [github_issue 177] `boost_check_equal-str-test` failed on `llvm`
194# [github_issue 180] Unreachable code warning on MSVC builds in test matrix
195# [github_issue 181] `doc_example22` (and `23`) are expected to fail, but do not on clang with release variant builds
196# [github_issue 194] `master_test_suite` declared twice
197# [github_issue 196] junit report: test error is also reported as failure
198# [github_issue 198] Support `BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK` et al
199# [github_issue 199] Runtime `type_mismatch` after upgrade to `1.69`
200# [github_issue 202] `boost/timer.hpp` is deprecated
201# [github_issue 203] Test cases with datasets and fixtures don't support flexible fixture interface
202# [github_issue 204] Feature Request: Allow specifying timeouts for test cases with datasests.
203# [github_issue 208] Incorrect handling of timed-tests on Windows
204# [github_issue 211] `windows.h` should be lower case
205# [github_issue 212] Comment `ar` parameter of `assertion_result` to avoid warning
206# [github_issue 213] `BOOST_SYMBOL_VISIBLE` cannot be used for `enums` with Sun Studio
207
208# [pull_request 171] Correct library name in test runner help screen
209# [pull_request 172] Check for non-used variables when `NDEBUG` is defined
210# [pull_request 182] fix use of `bind1st` in `example 12`
211# [pull_request 183] remove superfluous semicolon in `example 04`
212# [pull_request 184] fix example to use the correct variable and avoid unused variable warning
213# [pull_request 185] Added CI framework
214# [pull_request 190] fix warning on gcc-7.3 in cygwin claiming `master_test_suite` is declared differently
215# [pull_request 195] Fix MinGW compilation problems
216# [pull_request 197] Feature Request: `BOOST_TEST_CONTEXT` that doesn't require introducing a new scope with braces
217# [pull_request 205] Fix MinGW `vsnprintf` compile errors and warnings
218# [pull_request 214] Fixes an issue with sun_cc lacking the __global attribute for enums
219
220# [ticket 7397] Boost.Test, since boost `1.48` is using the deprecated `Boost.Timer` class (solved via [github_issue 202])
221# [ticket 9434] error: `namespace boost::timer {}` re-declared as different kind of symbol (solved via [github_issue 202])
222# [ticket 13106] `libs/test/tools/console_test_runner` does not compile
223# [ticket 13418] Request: allow general typelist types in `BOOST_AUTO_TEST_CASE_TEMPLATE()`
224
225
226[#ref_CHANGE_LOG_3_9][h4 Boost.Test v3.9 / boost 1.69]
227
228[h5 New features]
229* Official support of header-only variant of Boost.Test with multiple translation units. This feature
230  was available but needed to be properly documented ([link boost_test.adv_scenarios.single_header_customizations.multiple_translation_units here]
231  and [link boost_test.usage_variants here]).
232* It is now possible to manually add a test case by specifying its name, with __BOOST_TEST_CASE_NAME__
233* Better logging of messages in `boost::exception`
234
235[h5 Bugfixes and feature requests]
236
237# [github_issue 149] Setting color_output=no does not disable the output of color format codes
238# [github_issue 150] Some headers fail to compile independently
239# [github_issue 156] `close_at_tolerance` always returns `false` for comparisons of infinity
240# [github_issue 158] Detecting `boost_test_print_type` does not work when testing a type with an explicit conversion to `bool`
241# [github_issue 163] Significant start slowdown on MSVC x64/Debug after upgrade to `v1.68.0`
242
243# [pull_request 147] Catch block for `boost::exception` appears after `std::exception` in `execution_monitor::execute()`
244# [pull_request 148] Colored output contradiction
245# [pull_request 151] Fix warning: `BOOST_CLANG` is not defined, evaluates to `0`
246# [pull_request 154] When specifying `--color_output=no`, don't output color codes
247# [pull_request 161] add a self-containment test
248
249# [ticket 13380] data-driven tests' join operator `+` corrupts first column (duplicates [ticket 12216])
250# [ticket 13625] Boost.test fail to compile with `-Werror=missing-declarations` on some architectures
251# [ticket 13637] Fix for Bug [ticket 12597] causes a problem with `BOOST_TEST_CASE`
252
253
254[#ref_CHANGE_LOG_3_8][h4 Boost.Test v3.8 / boost 1.68]
255
256[h5 New features]
257* The tests generated from a dataset are now instantiated during the framework setup. This
258  let the dataset generator access the `argc` and `argv` of the master test suite. For indicating
259  a dataset that should be instantiated in a delayed manner, a new `data::make_delayed` helper has
260  been introduced.
261* It is now possible to create a dataset with `data::make`, with variable number of arguments.
262  As the datasets are monomorphic, it should be possible to cast all elements to the first element type.
263
264[h5 Breaking changes]
265* the [link boost_test.tests_organization.test_tree.master_test_suite `master_test_suite_t`] is not copyable anymore.
266* As datasets can now be delayed, it might be that additional copies of the dataset arguments are performed.
267  This is especially the case for datasets created out of an `std::initializer_list`.
268
269[h5 Bugfixes and feature requests]
270# [pull_request 143] Fix exception_api.run-fail.cpp doc example
271# [pull_request 145] Fix build of library on recent Cygwin editions
272# [ticket 12095] disabling test with precondition leads to error
273# [ticket 12953] access to `master_test_suite().{argc, argv}`
274# [ticket 13504] `[Boost::Test]` short form of `catch_system_errors` not working
275# [ticket 13525] Boost Test 1.67.0: Compilation error with GCC 4.6.3
276# [ticket 13528] Boost Test 1.67 crashes when the `--report_sink` command-line parameter is used
277
278
279[#ref_CHANGE_LOG_3_7][h4 Boost.Test v3.7 / boost 1.67]
280
281[h5 Breaking changes]
282
283* Now colour is on by default for the output streams that are either `std::cout` or `std::cerr`. This can be
284  disabled by passing [link boost_test.utf_reference.rt_param_reference.color_output `--no_color_ouput`] (or just `--no_color`)
285  to the command line.
286* Adding test cases with the same name to the same test suite is reported as an error. This impacts
287  [link boost_test.tests_organization.test_cases.test_organization_templates template] and
288  [link boost_test.tests_organization.test_cases.param_test parametrized] test cases, as well as manually
289  registered tests. Make sure you have no duplicate names.
290
291[h5 New features]
292* Colour output on Windows
293* Improved and clearer command line help
294* `BOOST_AUTO_TEST_CASE_TEMPLATE` now accepts a sequence of types in an `std::tuple`
295
296[h5 Bugfixes and feature requests]
297# [pull_request 112] Deliberate-failure tests shouldn't be optimized
298# [pull_request 118] Update VxWorks support
299# [pull_request 118] `[clang]` Fix `[-Wc++11-narrowing]` error
300# [pull_request 121] fix compiler warning
301# [pull_request 122] Fix some fallthrough warnings with `gcc >= 7`
302# [pull_request 125] Prevent 2 unused parameter warnings
303# [pull_request 127] Silence 'unused variable' warning
304# [pull_request 134] Fix `stdcerr` file creation on shutdown
305# [pull_request 136] Change `Windows.h` include to all-lowercase (MinGW)
306# [ticket 12092] Request: allow `std::tuple` typelists in `BOOST_AUTO_TEST_CASE_TEMPLATE`
307# [ticket 12596] Sanitize metacharacters in test names
308# [ticket 12597] Report tests with clashing names
309# [ticket 12969] Problem linking `print_helper_t<nullptr_t>` under Clang
310# [ticket 13058] `errors.hpp` in Boost Test requires warning `C4946` to be `off`
311# [ticket 13149] Dependency decorators on parent suites
312# [ticket 13170] `BOOST_AUTO_TEST_CASE_TEMPLATE` don't want `typedef` for list
313# [ticket 13181] Boost test can't compare classes which have `begin` and `end` but not `const_iterator`
314# [ticket 13371] Use-after-free with `--log_sink=file`
315# [ticket 13387] Test header fails to compile
316# [ticket 13398] Log format JUNIT generates invalid XML files
317# [ticket 13407] Boost.Test appears to crash under Cygwin
318# [ticket 13435] `BOOST_TEST_GLOBAL_CONFIGURATION` (result report shutdown time)
319# [ticket 13443] Boost.Test data driven test fails to compile when number of samples greater than 9
320
321[#ref_CHANGE_LOG_3_6][h4 Boost.Test v3.6 / boost 1.65]
322
323[h5 Breaking changes]
324* __BOOST_GLOBAL_FIXTURE__ is flagged as deprecated and will be removed in a later version
325* Using test assertions and macros is not allowed when used inside __BOOST_GLOBAL_FIXTURE__. Please use __BOOST_TEST_GLOBAL_FIXTURE__
326  instead (see below).
327* the interface for loggers has slightly changed to take into account the current log level. This is for addressing [ticket 12631].
328
329[h5 New features]
330* VS2017 / C++17 compatibility (thanks to Daniela Engert)
331* Deprecating __BOOST_GLOBAL_FIXTURE__ in favor of __BOOST_TEST_GLOBAL_FIXTURE__ and __BOOST_TEST_GLOBAL_CONFIGURATION__. This
332  helps separating the logic of the fixtures associated to the master test suite, from the one used for setting up the logging
333  and reporting facility, and results in a general cleaner design.
334* It is possible to use now the __BOOST_TEST__ check to comparing a collection with respect to regular arrays. See
335  [link ref_boost_test_coll_c_arrays this section] for more details.
336
337[h5 Bugfixes and feature requests]
338# [pull_request 106] replace deprecated binders and adapters, and `random_shuffle` by more modern equivalents
339# [ticket 5282] Test fixtures do not support virtual inheritance
340# [ticket 5563] using a test macro in a global fixture crashes Boost.Test
341# [ticket 11471] array is a sequence
342# [ticket 11962] `BOOST_TEST_MESSAGE` in fixture constructor - invalid XML
343# [ticket 12228] Some test headers fail to compile independently
344# [ticket 12631] `BOOST_TEST_MESSAGE` generates incorrect output when used in `BOOST_DATA_TEST_CASE`
345# [ticket 13011] `BOOST_TEST` broken with floating point relational operators
346
347[#ref_CHANGE_LOG_3_5][h4 Boost.Test v3.5 / boost 1.64]
348
349[h5 New features]
350* Now Boost.Test provides [link ref_log_output_custom_customization_point customization points] for logging user defined types:
351  this solution is less intrusive than forcing the definition of `operator<<` for a specific type.
352* [link boost_test.test_output.log_formats.log_junit_format JUnit output format] can now have a
353  [link boost_test.test_output.log_formats.test_log_output log-level] set between `success` and
354  `non-fatal error`, and defaults to `general information`.
355* [link boost_test.test_output.log_formats.log_junit_format JUnit output format] is now more
356  efficient in case a lot of checks are done in a test module.
357
358[h5 Bugfixes and feature requests]
359# [pull_request 107] `BOOST_NO_EXCEPTIONS` typo making `throw_exception` unusable under some circumstances
360# [pull_request 108] Change capital variable names to lowercase
361# [ticket 11756] boost.Test: non standards compliant use of `FE_*` macros (unable to compile boost test library on FPU-less arches) (reopened)
362# [ticket 12540] Provide customization point for printing types in tests
363# [ticket 12712] `BOOST_AUTO_TEST_SUITE`: Generate unique names by using `__COUNTER__`
364# [ticket 12748] Boost.Test defines a variable called `VERSION`
365# [ticket 12778] Boost.Test is broken against left shift operator in certain cases (`nullptr` issue)
366
367[#ref_CHANGE_LOG_3_4][h4 Boost.Test v3.4 / boost 1.63]
368
369[h5 Breaking changes]
370# Now colons that appear in test case names are replaced with underscores. This affect mainly the
371  [link boost_test.tests_organization.test_cases.test_organization_templates template/typed test cases].
372  The change is needed since the colon '`:`' is interpreted as a filter separators since 1.62, and it is
373  otherwise not possible to execute the tests reported by `--list_content`. See [ticket 12531] for more details.
374
375[h5 New features]
376* Now [link boost_test_coll_perelement `per_element`] and [link boost_test_coll_default_lex `lexicographic`] modifiers of __BOOST_TEST__
377  can also be applied to string comparison. See
378  [link boost_test.testing_tools.extended_comparison.strings string comparison] for more details.
379
380[h5 Bugfixes and feature requests]
381# [pull_request 103] Syntactic change silences latest gcc warnings
382# [pull_request 105] Fix unused parameter warnings/errors with gcc 6
383# [ticket 11756] boost.Test: non standards compliant use of `FE_*` macros (unable to compile boost test library on FPU-less arches)
384# [ticket 11907] Why does `BOOST_TEST()` treat `std::string` as a collection?
385# [ticket 12339] Propose users given way to disable blink in colour output
386# [ticket 12506] typo in Boost.test `report_sink` description
387# [ticket 12507] Boost.test `--report_sink` parameter broken
388# [ticket 12530] No way to find out Boost.Test version without running any tests
389# [ticket 12531] `--run_test` in Boost 1.62 does not accept test names which contain ':'
390
391[#ref_CHANGE_LOG_3_3][h4 Boost.Test v3.3 / boost 1.62]
392
393[h5 New features]
394* Boost.Test now treats each sample of a dataset test case as being a uniquely named test case under the same test suite,
395  which enables the (re)run of one particular sample from the command line interface. See
396  [link boost_test.tests_organization.test_cases.test_case_generation.datasets_auto_registration.samples_and_test_tree here]
397  for more details,
398* Boost.Test learned to interpret ':' as a separator for the test filters: the string passed to
399  [link boost_test.utf_reference.rt_param_reference.run_test `--run_test`]
400  generates tokens as if `--run_test` has been repeated, which enables the set up of several test filters
401  through the associated environment variable `BOOST_TEST_RUN_FILTERS`
402* the __UTF__ learned to log the messages in the xUnit/JUNIT log format.
403  See [link boost_test.test_output.log_formats.log_junit_format here] for more details.
404* the __UTF__ learned to have several loggers at the same time, each of which with their own log level and log sink.
405  See the associated command line switch [link boost_test.utf_reference.rt_param_reference.logger `--logger`] and
406  corresponding environment variable `BOOST_TEST_LOGGER` for more details.
407* loggers are now able to indicate their default output stream and log level.
408
409[h5 Bugfixes and feature requests]
410# [pull_request 81] Possibility to remove the support of the alternative stack at compilation time. See
411  [link boost_test.utf_reference.link_references.config_disable_alt_stack `BOOST_TEST_DISABLE_ALT_STACK`] for more details.
412# [ticket 8707] Provide Standard xUnit XML Output from Boost Test
413# [ticket 8834] Boost Test should be able to generate report in both XML and HRF together
414# [ticket 11128] `[bb10/qnx failures]` Build error
415# [ticket 11845] Ability to generate the unique and stable test name for every data set in `BOOST_DATA_TEST_CASE`
416# [ticket 11859] Wrong handling of "," in Run-Parameters
417# [ticket 12024] boost test depends on nonexisting `abi::__cxa_demangle` on android
418# [ticket 12093] Boost 1.60.0: Build fails (gcc 4.6)
419# [ticket 12103] Fix for gcc bug 58952 (`getchar()` is defined as a macro in `uClibc`)
420# [ticket 12224] Crash on MSVC with RTTI disabled
421# [ticket 12241] Data-driven testing over a range of `std::tuple` has broken
422# [ticket 12257] Incorrect line numbers in `test_units` generated from `test_case_gen`
423# [ticket 12378] Compilation errors with clang 3.8
424
425[#ref_CHANGE_LOG_3_2][h4 Boost.Test v3.2 / boost 1.61]
426
427[h5 New features]
428* now datasets support any [link boost_test.tests_organization.test_cases.test_case_generation.datasets arity], using the
429  variadic template support of the compiler.
430* now datasets support fixtures through `BOOST_DATA_TEST_CASE_F`, see
431  [link boost_test.tests_organization.test_cases.test_case_generation.datasets here] for more details
432* now datasets honors move semantics of the types used for samples
433
434[h5 Bugfixes and feature requests]
435# [ticket 6767] Use of namespace qualifier with floating point exception functions breaks if they are macros
436# [ticket 8905] `boost/test/impl/debug.ipp`: Ignores return value from `WaitForSingleObject`
437# [ticket 9443] Runtime parameter Random seed for random order of test cases not respected correctly
438# [ticket 11854] Add fixture support in `BOOST_DATA_TEST_CASE`
439# [ticket 11887] `BOOST_TEST(3u == (std::max)(0u, 3u))` fails
440# [ticket 11889] `BOOST_DATA_TEST_CASE` fails to compile for 4D and higher dimensional grids
441# [ticket 11983] Boost Test XML Report contains unescaped XML characters
442
443[#ref_CHANGE_LOG_3_1][h4 Boost.Test v3.1 / boost 1.60]
444
445[h5 New major features]
446* improved API for datasets
447  * it is now possible to use initializer lists
448  * the use of `make` as top left dataset is not necessary anymore
449* improved command line interface
450  * clearer help commands
451  * now proposes closest matching command in case of ambiguity
452  * reports invalid or ambiguous parameters: this might break existing calls when user defined commands are
453    provided to the test module. The following calling convention should be adopted:
454    * if the test module uses user supplied commands, those should be passed after an empty token `--`
455    * all boost.test related commands should be passed before `--`, if any
456
457    Example:
458    the call
459    ``
460    test_module --user-arg1=xy --log_level=test_suite
461    ``
462    should be rewritten to
463    ``
464    test_module --log_level=test_suite -- --user-arg1=xy
465    ``
466
467[h5 Bugfixes and feature requests]
468# [ticket 3384] Double-quoted arguments including spaces are divided by Boost.Test.
469# [ticket 3897] Test framework does not include `<osreldate.h>` before testing `__FreeBSD_version` (fixed in 1.59)
470# [ticket 6032] Program options within `init_unit_test_suite` are incorrect when using path and whitespaces
471# [ticket 6859] Boost.Test eats away last empty command line parameter
472# [ticket 7257] Boost.Test alters and does not restore `ostream` precision after any Test macro (fixed in 1.59)
473# [ticket 9228] Patch to make Boost.Test work with RTTI disabled (fixed in 1.59)
474# [ticket 10317] boost::test corrupts contents of `argv` if a paramter contains whitespace
475# [ticket 11279] invalid parameters should be reported
476# [ticket 11478] Boost Test Exception Assert Failure has poor message
477# [ticket 11571] Can't compile `BOOST_TEST( ..., per_element() )` comparison of `vector<string>`
478# [ticket 11623] Clang rejects some simple `BOOST_TEST()` statements
479# [ticket 11624] `BOOST_TEST( 0.0 == 0.0 )` fails under C++11 (GCC and Clang)
480# [ticket 11625] `BOOST_TEST( ..., per_element() )` erroneously requires collections are comparable
481
482
483[#ref_CHANGE_LOG_3_0][h4 Boost.Test v3 / boost 1.59]
484
485[h5 New major features]
486
487* __BOOST_TEST__ generic assertion
488* [link boost_test.tests_organization.test_cases.test_case_generation data driven test cases]: supersedes the parametric test case (unary test cases)
489* test units [link boost_test.tests_organization.decorators attributes], that allow finer control over test units property and behavior
490* logical grouping of the test units using [link boost_test.tests_organization.tests_grouping labels]
491* support for declaring [link boost_test.tests_organization.tests_dependencies dependencies] over test cases
492* attributes for [link boost_test.tests_organization.enabling enabling or disabling] test execution based on static, compile-time or runtime rules
493* extended [link boost_test.runtime_config.test_unit_filtering unit test filtering] from the command line (negation, labels, ...)
494* color output with [link boost_test.utf_reference.rt_param_reference.color_output `color_output`]
495* test bed listing with [link boost_test.utf_reference.rt_param_reference.list_content `list_content`]
496* rewritten documentation using quickbook
497
498[/* 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__
499  in case you experience problems with the new output. ]
500
501[h5 Bugfixes and feature requests]
502[/ pending
503# [ticket 1136] Let BOOST_CHECK_EQUAL support `std::wstring`
504# [ticket 4222] `feenablexcept` does not exist on mac
505# [ticket 7397] Boost.Test, since boost 1.48 is using the deprecated Boost.Timer class - it should be updated to use the new class
506]
507# [ticket 2018] Error in the documentation chapter "Runtime parameters reference"
508# [ticket 2450] equations in Floating-point comparison algorithms html are not rendered properly
509# [ticket 2600] Unit Test Framework - missed documentation
510# [ticket 2717] `BOOST_<level>_EQUAL_COLLECTION` docs typo
511# [ticket 2759] Typos in test new-year-resolution.html
512# [ticket 3182] `_CrtSetReportFile` can be used to redirect memory leaks report
513# [ticket 3316] Access violation when trying to log from `init_tests_func`
514# [ticket 3392] Boost::Test: Wrong contents for documentation of the `BOOST_TEST_PASSPOINT` macro
515# [ticket 3402] Invalid define name in documentation (duplicates #[ticket 2717])
516# [ticket 3445] incorrect link in the docs
517# [ticket 3463] `GT` is GREAT!
518# [ticket 3542] Bug in documentation of detect_memory_leak parameter (duplicates #[ticket 2018])
519# [ticket 3481] Boost Testing doesn't work under Sun Solaris Containers (duplicates #[ticket 3592])
520# [ticket 3495] Boost::Test enters endless loop when running in `vserver` environment (duplicates #[ticket 3592])
521# [ticket 3592] under_debugger() goes into infinite loop
522# [ticket 3595] Typo (duplicates #[ticket 2759])
523# [ticket 3623] Boost Test Typo (duplicates #[ticket 2759])
524# [ticket 3664] `SIGCHLD` always considered fatal error
525# [ticket 3784] Documentation errors in Execution Monitor Compilation
526# [ticket 3785] Documentation errors in Program Execution Monitor implementation
527# [ticket 3811] global namespace pollution
528# [ticket 3834] doc: probably incorrect HTML rendering (duplicates #[ticket 2450])
529# [ticket 3896] erroneous documentation in boost test command line parameter description
530# [ticket 3932] Error in `BOOST_<level>_GT` description (duplicates #[ticket 3463])
531# [ticket 3938] doc: incorrect macro name (duplicates #[ticket 2759])
532# [ticket 3964] Documentation for `BOOST_<level>_CLOSE_FRACTION` is incorrect
533# [ticket 3978] Failed to completely redirect TestLog to file, bugfix appended
534# [ticket 3979] `<boost/test/exception_safety.hpp>` requires additional includes
535# [ticket 4161] spelling mistakes...
536# [ticket 4275] Documentation error Boost.Test (duplicates #[ticket 2717])
537# [ticket 4389] Enable boost_test to run specific tests with any required dependent tests.
538# [ticket 4434] `BOOST_AUTO_EST_CASE` typos in docs
539# [ticket 4587] Broken link in website
540# [ticket 4806] Invalid link (examples not showing up in documentation)
541# [ticket 4911] ENH: boost.test output the exception real type name.
542# [ticket 4923] Missing semicolon in documentation example
543# [ticket 4924] Minor typo in Boost::Test docs
544# [ticket 4982] Boost.Test has misspelled Gennadiy Rozental e-mail address
545# [ticket 5008] Boost.Test does not do check-pointing of entry/exit of test cases
546# [ticket 5036] Boost.Test VC memory leak report should direct to `stderr`
547# [ticket 5262] Run tests by name utility doesn't support negation
548# [ticket 5374] Errors from Boost.Test are no more shown in the Error list in VS2010
549# [ticket 5412] XML formatter in test library processes strings with subsequences `]]>` incorrectly
550# [ticket 5563] using a test macro in a global fixture crashes Boost.Test
551# [ticket 5582] There is a memory leak in the `BOOST_AUTO_TEST_CASE_TEMPLATE`
552# [ticket 5599] boost::test documentation gives poor instruction
553# [ticket 5718] broken link to unit testing framework examples
554# [ticket 5729] Missing static_cast in fpt_limits
555# [ticket 5870] The warning stack is not maintained
556# [ticket 5972] Support program option to only dump the test-tree in text to output stream
557# [ticket 6002] Failed to completely redirect TestLog to file (duplicates)
558# [ticket 6071] Boost Test (Boost 1.46.0) GCC 4.6.1 error: ambiguous overload for ‘operator[]’
559# [ticket 6074] warnings-as-errors not usable with Boost.test in release mode
560# [ticket 6161] SunOS: bad `putenv` declaration (duplicates [ticket 6766])
561# [ticket 6766] incorrect declaration for `putenv` in `config.hpp`
562# [ticket 6712] Eliminate warnings with GCC
563# [ticket 6748] Link in the documentation points to wrong page
564# [ticket 7046] Output full error message, not just 512 chars
565# [ticket 7136] Correct documentation for `BOOST_<level>_CLOSE_FRACTION` is not reflected into released documents
566# [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
567# [ticket 7894] Boost.Test documentation contains no linking instructions
568# [ticket 8201] Broken link in document
569# [ticket 8272] `BOOST_REQUIRE_CLOSE` fails to compile with `boost::multiprecision::cpp_dec_float_100` (duplicates #[ticket 11054])
570# [ticket 8467] Incorrect link in document (duplicates #[ticket 6748])
571# [ticket 8679] Boost.Test pollutes boost namespace with it's own `enable_if/disable_if` templates
572# [ticket 8862] Boost.Test typo in documentation
573# [ticket 8895] English error in test collection comparison
574# [ticket 9179] Documentation: broken link (unable to find =const_string.hpp/const_string_test.cpp=)
575# [ticket 9272] boost::test `BOOST_<level>_GT` documentation bug (duplicates #[ticket 3463])
576# [ticket 9390] Incomplete `BOOST_TEST_DONT_PRINT_LOG_VALUE`
577# [ticket 9409] Some source code examples are missing
578# [ticket 9537] const_string_test example fails
579# [ticket 9539] Floating-point comparison algorithms aren't formatted correctly
580# [ticket 9581] Squassabia reference link gives 404 not found
581# [ticket 9960] Warnings on Clang
582# [ticket 10256] [boost test] - issue: `sigaltstack`
583# [ticket 10318] Minor documentation fix
584# [ticket 10394] Broken links in Boost Test documentation
585# [ticket 10888] Assertion failures don't show up in the errors pane in VS 2010, VS 2012 or VS 2013 (duplicates)
586# [ticket 11054] Floating-point comparison of multiprecision values fails if expression template is on
587# [ticket 11347] `DS` identifier causes test failures in `doc/examples/dataset_example*.cpp`
588# [ticket 11358] Boost.Test v3 warning could helpfully be suppressed.
589# [ticket 11359] `BOOST_CHECK_EQUAL_COLLECTIONS`: can't control output operator (duplicates #9390)
590# [ticket 11425] use-of-uninitialized-value (obsolete)
591
592[endsect]
593