Catch v2.10.0 Release Notes
Release Date: 2019-10-13 // over 4 years ago-
๐ 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
- The toggle is
- โ Added a generator that returns elements of a range
- Use via
from_range(from, to)
orfrom_range(container)
- Use via
- โ 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
- They must still provide global
- 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
- The matcher helper function is called
- โ 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
andINFINITY
to match user expectations - The matcher helper function is called
WithinRel
- Unlike
- 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
- In the future we also plan to use our own implementation of the distributions from