* Wed Dec 25 2019 Luigi Baldoni <aloisio@gmx.com>
- Update to version 2.11.0
Improvements:
* JUnit reporter output now contains more details in case of
failure (#1347, #1719)
* Added SonarQube Test Data reporter (#1738)
+ It is in a separate header, just like the TAP, Automake,
and TeamCity reporters
* `range` generator now allows floating point numbers (#1776)
* Reworked part of internals to increase throughput
Fixes:
* The single header version should contain full benchmarking
support (#1800)
* `[.foo]` is now properly parsed as `[.][foo]` when used on
the command line (#1798)
* Fixed compilation of benchmarking on platforms where
`steady_clock::period` is not `std::nano` (#1794)
version 2.10.2
Improvements:
* Catch2 will now compile on platform where `INFINITY` is
double (#1782)
Fixes:
* Warning suppressed during listener registration will no
longer leak
version 2.10.1
Improvements:
* Catch2 now guards itself against `min` and `max` macros from
`windows.h` (#1772)
* Templated tests will now compile with ICC (#1748)
* `WithinULP` matcher now uses scientific notation for
stringification (#1760)
Fixes:
* Templated tests no longer trigger `-Wunused-templates`
(#1762)
* Suppressed clang-analyzer false positive in context getter
(#1230, #1735)
Miscellaneous:
* CMake no longer prohibits in-tree build when Catch2 is used
as a subproject (#1773, #1774)
version 2.10.0
Fixes:
* `TEMPLATE_LIST_TEST_CASE` now properly handles non-copyable
and non-movable types (#1729)
* Fixed compilation error on Solaris caused by a system header
defining macro `TT` (#1722, #1723)
* `REGISTER_ENUM` will now fail at compilation time if the
registered enum is too large
* Removed use of `std::is_same_v` in C++17 mode (#1757)
* Fixed parsing of escaped special characters when reading
test specs from a file (#1767, #1769)
Improvements:
* Trailing and leading whitespace in test/section specs are
now ignored.
* Writing to Android debug log now uses `__android_log_write`
instead of `__android_log_print`
* Android logging support can now be turned on/off at compile
time (#1743)
+ The toggle is `CATCH_CONFIG_ANDROID_LOGWRITE`
* Added a generator that returns elements of a range
+ Use via `from_range(from, to)` or `from_range(container)`
* Added support for CRTs that do not provide `std::nextafter`
(#1739)
+ They must still provide global `nextafter{f,l,}`
+ Enabled via `CATCH_CONFIG_GLOBAL_NEXTAFTER`
* Special cased `Approx(inf)` not to match non-infinite values
+ Very strictly speaking this might be a breaking change,
but it should match user expectations better
* The output of benchmarking through the Console reporter when
`--benchmark-no-analysis` is set is now much simpler (#1768)
* Added a matcher that can be used for checking an exceptions
message (#1649, #1728)
+ The matcher helper function is called `Message`
+ The exception must publicly derive from `std::exception`
+ The matching is done exactly, including case and whitespace
* Added a matcher that can be used for checking relative
equality of floating point numbers (#1746)
+ Unlike `Approx`, it considers both sides when determining
the allowed margin
+ Special cases `NaN` and `INFINITY` to match user
expectations
+ The matcher helper function is called `WithinRel`
* The ULP matcher now allows for any possible distance between
the two numbers
* The random number generators now use Catch-global instance
of RNG (#1734, #1736)
+ This means that nested random number generators actually
generate different numbers
Miscellaneous:
* In-repo PNGs have been optimized to lower overhead of using
Catch2 via git clone
* Catch2 now uses its own implementation of the URBG concept
+ In the future we also plan to use our own implementation
of the distributions from `<random>` to provide
cross-platform repeatability of random results
version 2.9.2
Fixes:
* `ChunkGenerator` can now be used with chunks of size 0
(#1671)
* Nested subsections are now run properly when specific
section is run via the `-c` argument (#1670, #1673)
* Catch2 now consistently uses `_WIN32` to detect Windows
platform (#1676)
* `TEMPLATE_LIST_TEST_CASE` now support non-default
constructible type lists (#1697)
* Fixed a crash in the XMLReporter when a benchmark throws
exception during warmup (#1706)
* Fixed a possible infinite loop in CompactReporter (#1715)
* Fixed `-w NoTests` returning 0 even when no tests were
matched (#1449, #1683, #1684)
* Fixed matcher compilation under Obj-C++ (#1661)
Improvements:
* `RepeatGenerator` and `FixedValuesGenerator` now fail to
compile when used with `bool` (#1692)
+ Previously they would fail at runtime.
* Catch2 now supports Android's debug logging for its debug
output (#1710)
* Catch2 now detects and configures itself for the RTX
platform (#1693)
+ You still need to pass `--benchmark-no-analysis` if you
are using benchmarking under RTX
* Removed a "storage class is not first" warning when
compiling Catch2 with PGI compiler (#1717)
Miscellaneous:
* Documentation now contains indication when a specific
feature was introduced (#1695)
+ These start with Catch2 v2.3.0, (a bit over a year ago).
+ `docs/contributing.md` has been updated to provide
contributors guidance on how to add these to newly written
documentation
* Various other documentation improvements
+ ToC fixes
+ Documented `--order` and `--rng-seed` command line options
+ Benchmarking documentation now clearly states that it
requires opt-in
+ Documented `CATCH_CONFIG_CPP17_OPTIONAL` and
`CATCH_CONFIG_CPP17_BYTE` macros
+ Properly documented built-in vector matchers
+ Improved `*_THROWS_MATCHES` documentation a bit
* CMake config file is now arch-independent even if
`CMAKE_SIZEOF_VOID_P` is in CMake cache (#1660)
* `CatchAddTests` now properly escapes `[` and `]` in test
names (#1634, #1698)
* Reverted `CatchAddTests` adding tags as CTest labels (#1658)
+ The script broke when test names were too long
+ Overwriting `LABELS` caused trouble for users who set them
manually
+ CMake does not let users append to `LABELS` if the test
name has spaces
version 2.9.1
Fixes:
* Fix benchmarking compilation failure in files without
`CATCH_CONFIG_EXTERNAL_INTERFACES` (or implementation)
version 2.9.0
Improvements:
* The experimental benchmarking support has been replaced by
integrating Nonius code (#1616)
+ This provides a much more featurefull micro-benchmarking
support.
+ Due to the compilation cost, it is disabled by default.
See the documentation for details.
+ As far as backwards compatibility is concerned, this
feature is still considered experimental in that we might
change the interface based on user feedback.
* `WithinULP` matcher now shows the acceptable range (#1581)
* Template test cases now support type lists (#1627)
version 2.8.0
Improvements:
* Templated test cases no longer check whether the provided
types are unique (#1628)
+ This allows you to e.g. test over `uint32_t`, `uint64_t`,
and `size_t` without compilation failing
* The precision of floating point stringification can be
modified by user (#1612, #1614)
* We now provide `REGISTER_ENUM` convenience macro for
generating `StringMaker` specializations for enums
+ See the "String conversion" documentation for details
* Added new set of macros for template test cases that enables
the use of NTTPs (#1531, #1609)
+ See "Test cases and sections" documentation for details
Fixes:
* `UNSCOPED_INFO` macro now has a
prefixed/disabled/prefixed+disabled versions (#1611)
* Reporting errors at startup should no longer cause a
segfault under certain circumstances (#1626)
Miscellaneous:
* CMake will now prevent you from attempting in-tree build
(#1636, #1638)
+ Previously it would break with an obscure error message
during the build step
- Drop _service file