diff options
| author | Martin Hořeňovský | 2025-07-24 22:01:46 +0200 |
|---|---|---|
| committer | Martin Hořeňovský | 2025-07-24 22:01:46 +0200 |
| commit | fee81626d2a4811095c3a39d20fb355eeb954101 (patch) | |
| tree | 47204f930a0669fa89bb5dcd06b88839abdf1918 /docs | |
| parent | b6c5a635bb67d31c6feda3e79c7139dba2f35b89 (diff) | |
| download | catch3-3.9.0.tar.gz | |
v3.9.0v3.9.0
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/command-line.md | 2 | ||||
| -rw-r--r-- | docs/configuration.md | 4 | ||||
| -rw-r--r-- | docs/release-notes.md | 40 | ||||
| -rw-r--r-- | docs/reporters.md | 2 | ||||
| -rw-r--r-- | docs/thread-safety.md | 2 |
5 files changed, 45 insertions, 5 deletions
diff --git a/docs/command-line.md b/docs/command-line.md index 6096802e..73b94f6c 100644 --- a/docs/command-line.md +++ b/docs/command-line.md @@ -413,7 +413,7 @@ Tests are sorted by their name, their tags are ignored. ### rand Randomized order. The default order. -> Randomized order has been made default in Catch2 X.Y.Z +> Randomized order has been made default in Catch2 3.9.0 The order is dependent on Catch2's random seed (see [`--rng-seed`](#rng-seed)), and is subset invariant. What this means diff --git a/docs/configuration.md b/docs/configuration.md index c54776ad..f63a6d41 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -268,7 +268,7 @@ namespace Catch { ## Disabling deprecation warnings -> Introduced in Catch2 X.Y.Z +> Introduced in Catch2 3.9.0 Catch2 has started using the C++ macro `[[deprecated]]` to mark things that are deprecated and should not be used any more. If you need to @@ -318,7 +318,7 @@ are not meant to be runnable, only "scannable". ## Experimental thread safety -> Introduced in Catch2 X.Y.Z +> Introduced in Catch2 3.9.0 Catch2 can optionally support thread-safe assertions, that means, multiple user-spawned threads can use the assertion macros at the same time. Due diff --git a/docs/release-notes.md b/docs/release-notes.md index fd0559bd..b8b973c9 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -2,6 +2,7 @@ # Release notes **Contents**<br> +[3.9.0](#390)<br> [3.8.1](#381)<br> [3.8.0](#380)<br> [3.7.1](#371)<br> @@ -67,6 +68,45 @@ [Even Older versions](#even-older-versions)<br> +## 3.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 + + ## 3.8.1 ### Fixes diff --git a/docs/reporters.md b/docs/reporters.md index c600130c..d42648cf 100644 --- a/docs/reporters.md +++ b/docs/reporters.md @@ -169,7 +169,7 @@ Currently there are three customization options: `assertionStarting` events. Most reporters do not, and opting out explicitly enables a fast-path in Catch2's handling of assertions. -> `shouldReportAllAssertionStarts` was introduced in Catch2 X.Y.Z +> `shouldReportAllAssertionStarts` was introduced in Catch2 3.9.0 ### Per-reporter configuration diff --git a/docs/thread-safety.md b/docs/thread-safety.md index 218246e6..c3f610f0 100644 --- a/docs/thread-safety.md +++ b/docs/thread-safety.md @@ -8,7 +8,7 @@ [Fatal errors and multiple threads](#fatal-errors-and-multiple-threads)<br> [Performance overhead](#performance-overhead)<br> -> Thread safe assertions were introduced in Catch2 X.Y.Z +> Thread safe assertions were introduced in Catch2 3.9.0 Thread safety in Catch2 is currently limited to all the assertion macros. Interacting with benchmark macros, message macros (e.g. `INFO` or `CAPTURE`), |