Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
tag namev3.9.0 (92d9cd715889a864b86714a9dc551ee65894e8ea)
tag date2025-07-24 22:02:00 +0200
tagged byMartin Hořeňovský
tagged objectcommit fee81626d2...
downloadcatch3-3.9.0.tar.gz
v3.9.0
=== 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` and `SKIP` 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 from `internal/` 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 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE8QyLZSqAHw/oZQgX3kgwe4sNOBoFAmiCkWIACgkQ3kgwe4sN OBrohA//VM0MoWEyb1Mp9Lw4pw07CL7EnqsgOnOjEu1EgN1tyDMEw3vf/uysiY4X ab7RwVzCd0WVnixmNsduhzotCC0o4cDupPNXMTiRgO7ijtzLOfCsUqc+ZuIP0xUJ a1IcokrQM/FYPfltBfJUCQdpWHX/Co0dDNtXlCjY2Ur3Ek/4w4M8efARKZi1xi+C WDprUrOcYCWlYSzRa7LXWbkoCETdEphQCIXfCo8/kIbIf8+roJuiH/9RE6UrdeDY yQfH6qLUoPdfeIQGGJY+dN+rVfsQkBBM2V6dsYcNsAXWsHEzDFJhI1KQHNw51T+3 MSaGmUKa3ptwW8p+ecEsqdSiygMBmrVW+x1Oqk/FCuW1r7lDemnh9ZjyIt2PRfxO 6AxTepyT2wJhjHK/UecIxhh7Xba7Cbbu9vT3FplJFtLI4MVgXFpo4hFKHGl2Y+oI okJgoDb+Bh2sWqqFQdKfIq+0ntn8Oqfas64QV7jmT/M1f9ENMqrunEnmQzPGcu8t ckly4+WVTCXAoSseKWJasJgFCPQjrjQYcaEtQNCNyYLSjLFJIMNmXp5NrlSmtLHv va7JIMLEgar4kMuiRUeu3Tz0mDrWti4/eX503vBs/BF8/O8m6XKnv7vXcVhg2mQW pLT5qM8bbAv0AnxHFgewD2ztuEoTPECqq6T06t77EHYDTPhys/4= =6rlc -----END PGP SIGNATURE-----