All Versions
21
Latest Version
Avg Release Cycle
36 days
Latest Release
1434 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v2.12.1 Changes
April 21, 2020🛠 Fixes
- 👍 Vector matchers now support initializer list literals better
👌 Improvements
- ➕ Added support for
^
(bitwise xor) toCHECK
andREQUIRE
-
v2.12.0 Changes
April 21, 2020👌 Improvements
- ✅ Running tests in random order (
--order rand
) has been reworked significantly (#1908)- Given same seed, all platforms now produce the same order
- Given same seed, the relative order of tests does not change if you select only a subset of them
- 👍 Vector matchers support custom allocators (#1909)
- 👍
|
and&
(bitwise or and bitwise and) are now supported inCHECK
andREQUIRE
- The resulting type must be convertible to
bool
- The resulting type must be convertible to
🛠 Fixes
- 🛠 Fixed computation of benchmarking column widths in ConsoleReporter (#1885, #1886)
- Suppressed clang-tidy's
cppcoreguidelines-pro-type-vararg
in assertions (#1901)- It was a false positive trigered by the new warning support workaround
- 🛠 Fixed bug in test specification parser handling of OR'd patterns using escaping (#1905)
Miscellaneous
- ✅ Running tests in random order (
-
v2.11.3 Changes
March 19, 2020🛠 Fixes
- 🛠 Fixed compilation error caused by lambdas in assertions under MSVC
-
v2.11.2 Changes
March 19, 2020👌 Improvements
- ⚠ GCC and Clang now issue warnings for suspicious code in assertions (#1880)
- E.g.
REQUIRE( int != unsigned int )
will now issue mixed signedness comparison warning - This has always worked on MSVC, but it now also works for GCC and current Clang versions
- E.g.
- ✅ Colorization of "Test filters" output should be more robust now
--wait-for-keypress
now also acceptsnever
as an option (#1866)- Reporters no longer round-off nanoseconds when reporting benchmarking results (#1876)
- 👍 Catch2's debug break now supports iOS while using Thumb instruction set (#1862)
- ✅ It is now possible to customize benchmark's warm-up time when running the test binary (#1844)
--benchmark-warmup-time {ms}
- 👉 User can now specify how Catch2 should break into debugger (#1846)
🛠 Fixes
- 🛠 Fixes missing
<random>
include in benchmarking (#1831) - 🛠 Fixed missing
<iterator>
include in benchmarking (#1874) - 📚 Hidden test cases are now also tagged with
[!hide]
as per documentation (#1847) - Detection of whether libc provides
std::nextafter
has been improved (#1854) - Detection of
wmain
no longer incorrectly looks forWIN32
macro (#1849)- Now it just detects Windows platform
- Composing already-composed matchers no longer modifies the partially-composed matcher expression
- This bug has been present for the last ~2 years and nobody reported it
- ⚠ GCC and Clang now issue warnings for suspicious code in assertions (#1880)
-
v2.11.1 Changes
December 28, 2019 -
v2.11.0 Changes
November 15, 2019👌 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
-
v2.10.2 Changes
October 24, 2019👌 Improvements
- Catch2 will now compile on platform where
INFINITY
is double (#1782)
🛠 Fixes
- ⚠ Warning suppressed during listener registration will no longer leak
Miscellaneous
- 🚀 From this release forward released headers could be signed also by
- KeyID
81E7 0B71 7FFB 27AF DB45 F520 90BB FF12 0F9C 087B
- KeyID
- Catch2 will now compile on platform where
-
v2.10.1 Changes
October 20, 2019👌 Improvements
- 🏁 Catch2 now guards itself against
min
andmax
macros fromwindows.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
- 🏁 Catch2 now guards itself against
-
v2.10.0 Changes
October 13, 2019🛠 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
-
v2.9.2 Changes
August 08, 2019🛠 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
andFixedValuesGenerator
now fail to compile when used withbool
(#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
- You still need to pass
- ✂ 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
andCATCH_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