| CARVIEW |
Select Language
HTTP/2 200
date: Tue, 30 Dec 2025 10:12:42 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"6df385dadea2e27712dcf5c42726669a"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=QwNCo7Aga4tzIkFa%2FSwFtVj3eRS2QBzj%2BbCKY824UxUoJf%2BtSFfzxdshOxEGT%2B8YVmpie8d9%2BeJQMYty6ObUzhHeJaXApBbi02eCoR0u69Dh65VAvmIk2F3akEvUIGDXeA%2B%2FkCXiEl5sIT4TZxwkH3JqVqnD%2FlQU4OUze8qJu0NfwuUpW6BmRrlHJOrAlaLZhhr4hHRl4OWWkEENFap02lrDbnzxlITDi1KUMi%2FHsjROBsfTxrKxV%2BOS0KEQ3DjOyFJqFlRUqmL6Jc2NrgStFQ%3D%3D--ueY530o2EIvCVVET--m7X%2FhdFmgUh6QWjEJ%2FkvcA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.782041647.1767089561; Path=/; Domain=github.com; Expires=Wed, 30 Dec 2026 10:12:41 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Wed, 30 Dec 2026 10:12:41 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: BB46:EFD7B:6E9372:78EBFB:6953A599
Releases · catchorg/Catch2 · GitHub
28 Dec 21:47
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
30 Sep 08:59
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
25 Aug 20:04
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
08 Aug 22:36
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
24 Jul 20:04
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
09 Apr 18:52
ChrisThrasher
Chris Thrasher
ChrisThrasher
Chris Thrasher
Loading
05 Jan 23:43
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
17 Sep 08:50
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
14 Aug 10:11
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
05 May 19:10
horenmar
Martin Hořeňovský
horenmar
Martin Hořeňovský
Loading
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Releases: catchorg/Catch2
Releases · catchorg/Catch2
v3.12.0
v3.12.0
This tag was signed with the committer’s verified signature.
The key has expired.
88abf9b
This commit was signed with the committer’s verified signature.
The key has expired.
Fixes
- Fixed unscoped messages after a passing fast-pathed assertion being lost.
- Fixed the help string for
--orderto mention random order as the default. (#3045) - Fixed small documentation typos. (#3039)
- Fixed compilation with
CATCH_CONFIG_THREAD_SAFE_ASSERTIONSfor older C++ standards. - Fixed a thread-safety issue with message macros being used too early after the process starts.
- Fixed automatic configuration to properly handle PlayStation platform. (#3054)
- Fixed the weird behaviour of section filtering when specifying multiple filters. (#3038)
- See #3038 for more details.
Improvements
- Added
lifetimeboundattribute to various places.- As an example, compiler that supports lifetime analysis will now diagnose invalid use of Matcher combinators.
- Minor compile-time improvements to stringification. (#3028)
std::tupleprinter does not recurse.- Some implementation details were outlined into the cpp file.
- Global variables will only be marked with
thread_localin thread-safe builds. (#3044)
Miscellaneous
- The thread safety support is no longer experimental.
- The new CMake option and C++ define is now
CATCH_CONFIG_THREAD_SAFE_ASSERTIONS.
- The new CMake option and C++ define is now
Assets 6
9 people reacted
v3.11.0
v3.11.0
This tag was signed with the committer’s verified signature.
The key has expired.
b3fb4b9
This commit was signed with the committer’s verified signature.
The key has expired.
Fixes
- Fixed building on non-desktop GDK platforms (#3029)
- Fixed message macros being susceptible to race in specific scenario (#3031)
- Catch2's SEH filter will call the previously installed filter after reporting the error (#3033)
Improvements
- Handling of scoped messages (e.g.
CAPTURE) is a bit faster. - Better out-of-the-box support for QNX (#2953)
- Improved performance of assertions by up-to 10%
- Release mode assertion fast-path sees the biggest improvement.
- Faster processing of non-escaped strings in
--invisiblesmode. - Added support for Bazel's
TEST_RANDOM_SEEDenv var (#3021) - Added support for Bazel's
TEST_PREMATURE_EXIT_FILEenv var (#3020)- This creates a file that is deleted if the tests exit normally, but stays around if the process dies unexpectedly.
- This functionality is also exposed through CLI as
--premature-exit-guard-file
Miscellaneous
- Tuple.app has sponsored Catch2
Assets 6
11 people reacted
v3.10.0
v3.10.0
This tag was signed with the committer’s verified signature.
The key has expired.
25319fd
This commit was signed with the committer’s verified signature.
The key has expired.
Fixes
- pkg-config files will take
DESTDIRenv var into account when selecting install destination (#3006, #3019) - Changed
filterto store the provided predicate by value (#3002, #3005)- This is done to avoid dangling-by-default behaviour when
filteris used insideGENERATE_COPY/GENERATE_REF.
- This is done to avoid dangling-by-default behaviour when
Improvements
- Escaping XML and JSON output is faster when the strings do not need escaping.
- The improvement starts at about 3x throughput, up to 10x for long strings.
- Message macros (
INFO,CAPTURE,WARN,SUCCEED, etc) are now thread safe.
Assets 6
7 people reacted
v3.9.1
v3.9.1
This tag was signed with the committer’s verified signature.
The key has expired.
644821c
This commit was signed with the committer’s verified signature.
The key has expired.
Fixes
- Fixed bad error reporting for multiple nested assertions (#1292)
- Fixed W4702 (unreachable code) in the polyfill for std::unreachable (#3007)
- Fixed decomposition of assertions comparing enum-backed bitfields (#3001)
- Fixed StringMaker specialization for
time_point<system_clock>with non-default duration type (#2685)
Improvements
- Exceptions thrown during stringification of decomposed expression no longer fail the assertion (#2980)
- The selection logic for
CATCH_TRAPprefers__builtin_debugtrapon all platforms when Catch2 is compiled with Clang
Assets 6
3 people reacted
v3.9.0
v3.9.0
This tag was signed with the committer’s verified signature.
The key has expired.
fee8162
This commit was signed with the committer’s verified signature.
The key has expired.
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
assertionEndedevents 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_NOTHROWis 230% faster in Release and 430% faster in Debug build configuration - Simple
REQUIRE_THROWSis ~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
assertionEndedevents 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
FAILandSKIPmacros (#2941)- This allows the compiler to understand that the execution does not continue past the macro, and avoids warnings.
- Added fast path for
assertionStartingevent 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-tagsoutput (#2963) - Fixed Clang-Tidy's
readability-static-accessed-through-instancein 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_SIGcan handle signatures consisting of only types (#2680, #2995)- Moved
catch_test_run_info.hppup 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
Assets 6
12 people reacted
v3.8.1
v3.8.1
This tag was signed with the committer’s verified signature.
2b60af8
This commit was signed with the committer’s verified signature.
Assets 6
13 people reacted
v3.8.0
v3.8.0
This tag was signed with the committer’s verified signature.
The key has expired.
914aeec
This commit was signed with the committer’s verified signature.
The key has expired.
Improvements
- Added
std::initializer_listoverloads for(Unordered)RangeEqualsmatcher (#2915, #2919) - Added explicit casts to silence GCC's
Wconversion(#2875) - Made the use of
builtin_constant_ptricks in assertion macros configurable (#2925)- It is used to prod GCC-like compilers into providing warnings for the asserted expressions, but the compilers miscompile it annoyingly often.
- Cleaned out Clang-Tidy's
performance-enum-sizewarnings - Added support for using
from_rangegenerator with iterators withvalue_type = const T(#2926)- This is not correct
value_typetypedef, but it is used in the wild and the change does not make the code meaningfully worse.
- This is not correct
Fixes
- Fixed crash when stringifying pre-1970 (epoch) dates on Windows (#2944)
Miscellaneous
- Fixes and improvements for
catch_discover_testsCMake helper- Removed redundant
CTEST_FILEparam when creating the indirection file forPRE_TESTdiscovery mode (#2936) - Rewrote the test discovery logic to use output from the JSON reporter
- This means that
catch_discover_testsnow requires CMake 3.19 or newer
- This means that
- Added
ADD_TAGS_AS_LABELSoption. If specified, each CTest test will be labeled with corrensponding Catch2's test tag
- Removed redundant
- Bumped up the minimum required CMake version to build Catch2 to 3.16
- Meson build now provides option to avoid installing Catch2
- Bazel build is moved to Bzlmod.
Assets 6
12 people reacted
v3.7.1
v3.7.1
This tag was signed with the committer’s verified signature.
The key has expired.
fa43b77
This commit was signed with the committer’s verified signature.
The key has expired.
Improvements
- Applied the JUnit reporter's optimization from last release to the SonarQube reporter
- Suppressed
-Wuseless-castinCHECK_THROWS_MATCHES(#2904) - Standardize exit codes for various failures
- Running no tests is now guaranteed to exit with 2 (without the
--allow-running-no-testsflag) - All tests skipped is now always 4 (...)
- Assertion failures are now always 42
- and so on
- Running no tests is now guaranteed to exit with 2 (without the
Fixes
- Fixed out-of-bounds access when the arg parser encounters single
-as an argument (#2905)
Miscellaneous
Assets 6
18 people reacted
v3.7.0
v3.7.0
This tag was signed with the committer’s verified signature.
The key has expired.
31588bb
This commit was signed with the committer’s verified signature.
The key has expired.
Improvements
- Slightly improved compile times of benchmarks
- Made the resolution estimation in benchmarks slightly more precise
- Added new test case macro,
TEST_CASE_PERSISTENT_FIXTURE(#2885, #1602)- Unlike
TEST_CASE_METHOD, the same underlying instance is used for all partial runs of that test case
- Unlike
- MASSIVELY improved performance of the JUnit reporter when handling successful assertions (#2897)
- For 1 test case and 10M assertions, the new reporter runs 3x faster and uses up only 8 MB of memory, while the old one needs 7 GB of memory.
- Reworked how output redirects works.
- Combining a reporter writing to stdout with capturing reporter no longer leads to the capturing reporter seeing all of the other reporter's output.
- The file based redirect no longer opens up a new temporary file for each partial test case run, so it will not run out of temporary files when running many tests in single process.
Miscellaneous
- Better documentation for matchers on thrown exceptions (
REQUIRE_THROWS_MATCHES) - Improved
catch_discover_tests's handling of environment paths (#2878)- It won't reorder paths in
DL_PATHSorDYLD_FRAMEWORK_PATHSargs - It won't overwrite the environment paths for test discovery
- It won't reorder paths in
Assets 6
26 people reacted
v3.6.0
v3.6.0
This tag was signed with the committer’s verified signature.
The key has expired.
4e8d92b
This commit was signed with the committer’s verified signature.
The key has expired.
Fixes
- Fixed Windows ARM64 build by fixing the preprocessor condition guarding use
_umul128intrinsic. - Fixed Windows ARM64EC build by removing intrinsic pragma it does not understand. (#2858)
- Why doesn't the x64-emulation build mode understand x64 pragmas? Don't ask me, ask the MSVC guys.
- Fixed the JUnit reporter sometimes crashing when reporting a fatal error. (#1210, #2855)
- The binary will still exit, but through the original error, rather than secondary error inside the reporter.
- The underlying fix applies to all reporters, not just the JUnit one, but only JUnit was currently causing troubles.
Improvements
- Disable
-Wnon-virtual-dtorin Decomposer and Matchers (#2854) precisionin floating point stringmakers defaults tomax_digits10.- This means that floating point values will be printed with enough precision to disambiguate any two floats.
- Column wrapping ignores ansi colour codes when calculating string width (#2833, #2849)
- This makes the output much more readable when the provided messages contain colour codes.
Miscellaneous
- Conan support improvements
SelfTesttarget can be built through Bazel (#2857)
Assets 6
16 people reacted
Previous Next
You can’t perform that action at this time.