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

summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorMartin Hořeňovský2025-07-24 22:01:46 +0200
committerMartin Hořeňovský2025-07-24 22:01:46 +0200
commitfee81626d2a4811095c3a39d20fb355eeb954101 (patch)
tree47204f930a0669fa89bb5dcd06b88839abdf1918 /docs
parentb6c5a635bb67d31c6feda3e79c7139dba2f35b89 (diff)
downloadcatch3-3.9.0.tar.gz
v3.9.0v3.9.0
Diffstat (limited to 'docs')
-rw-r--r--docs/command-line.md2
-rw-r--r--docs/configuration.md4
-rw-r--r--docs/release-notes.md40
-rw-r--r--docs/reporters.md2
-rw-r--r--docs/thread-safety.md2
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`),