Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
catch_amalgamated.hpp.asc | 2025-07-24 | 833 Bytes | |
catch_amalgamated.cpp.asc | 2025-07-24 | 833 Bytes | |
catch_amalgamated.hpp | 2025-07-24 | 531.5 kB | |
catch_amalgamated.cpp | 2025-07-24 | 429.5 kB | |
README.md | 2025-07-24 | 2.7 kB | |
v3.9.0 source code.tar.gz | 2025-07-24 | 1.1 MB | |
v3.9.0 source code.zip | 2025-07-24 | 1.4 MB | |
Totals: 7 Items | 3.6 MB | 1 |
Improvements
- Added experimental opt-in support for thread safe assertions
- Read the documentation for full details
- The default test run order has been changed to random
- Passing assertions are significantly faster when the reporter does not ask for
assertionEnded
events on passing assertions. - This is the default behaviour of e.g. Console or Compact reporter
- Simple
REQUIRE(true)
is 60% faster in Release and 80% faster in Debug build configuration - Simple
REQUIRE_NOTHROW
is 230% faster in Release and 430% faster in Debug build configuration - Simple
REQUIRE_THROWS
is ~3% faster in Release and 20% faster in Debug build configuration (throwing introduces enough overhead that the optimizations inside Catch2 are mostly irrelevant) - Small (2-5%) improvement if the reporter asks for
assertionEnded
events for passing assertions. - The exit code constants are part of the Session API. (#2955, [#2976])
- Suppressed unsigned integer overflow checking in locations with intended overflow (#2965)
- Reporters flush output after writing metadata, e.g. rng seed (#2964)
- Added unreachable after
FAIL
andSKIP
macros (#2941) - This allows the compiler to understand that the execution does not continue past the macro, and avoids warnings.
- Added fast path for
assertionStarting
event when no reporter requires it - For backwards compatibility, this fast path is opt-in
- A reporter can opt in by changing its
ReporterPreferences::shouldReportAllAssertionStarts
- Improved last seen source location tracking to be more precise
- This is used when reporting unexpected exceptions from tests
Fixes
- Fixed formatting of tags with more than 100 tests in the default
--list-tags
output (#2963) - Fixed Clang-Tidy's
readability-static-accessed-through-instance
in tests - Fixed most of Clang-Tidy's
cppcoreguidelines-avoid-non-const-global-variables
(#2582) - The lifetime of scoped messages now strictly obeys their scope (#1759, [#2019], [#2959])
- Previously Catch2 would try to keep them around during unexpected exception, to provide helpful context.
- The amount of surprises the irregularities caused was not worth the occasional utility provided.
TEMPLATE_TEST_CASE_SIG
can handle signatures consisting of only types (#2680, [#2995])- Moved
catch_test_run_info.hpp
up frominternal/
subfolder into the main one (#2972)
Miscellaneous
- pkg-config files are now generated at install time (#2979)
- This fixes missing debug suffix in library names
- This fixes install prefix mismatch between build config and actuall installation