Skip to content

Commit fee8162

Browse files
committed
v3.9.0
1 parent b6c5a63 commit fee8162

File tree

11 files changed

+580
-264
lines changed

11 files changed

+580
-264
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ if(CMAKE_BINARY_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
3434
endif()
3535

3636
project(Catch2
37-
VERSION 3.8.1 # CML version placeholder, don't delete
37+
VERSION 3.9.0 # CML version placeholder, don't delete
3838
LANGUAGES CXX
3939
HOMEPAGE_URL "https://github.com/catchorg/Catch2"
4040
DESCRIPTION "A modern, C++-native, unit test framework."

docs/command-line.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ Tests are sorted by their name, their tags are ignored.
413413
### rand
414414
Randomized order. The default order.
415415

416-
> Randomized order has been made default in Catch2 X.Y.Z
416+
> Randomized order has been made default in Catch2 3.9.0
417417
418418
The order is dependent on Catch2's random seed (see
419419
[`--rng-seed`](#rng-seed)), and is subset invariant. What this means

docs/configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ namespace Catch {
268268
269269
## Disabling deprecation warnings
270270
271-
> Introduced in Catch2 X.Y.Z
271+
> Introduced in Catch2 3.9.0
272272
273273
Catch2 has started using the C++ macro `[[deprecated]]` to mark things
274274
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".
318318
319319
## Experimental thread safety
320320
321-
> Introduced in Catch2 X.Y.Z
321+
> Introduced in Catch2 3.9.0
322322
323323
Catch2 can optionally support thread-safe assertions, that means, multiple
324324
user-spawned threads can use the assertion macros at the same time. Due

docs/release-notes.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
# Release notes
44
**Contents**<br>
5+
[3.9.0](#390)<br>
56
[3.8.1](#381)<br>
67
[3.8.0](#380)<br>
78
[3.7.1](#371)<br>
@@ -67,6 +68,45 @@
6768
[Even Older versions](#even-older-versions)<br>
6869

6970

71+
## 3.9.0
72+
73+
### Improvements
74+
* **Added experimental opt-in support for thread safe assertions**
75+
* Read the documentation for full details
76+
* **The default test run order has been changed to random**
77+
* Passing assertions are significantly faster when the reporter does not ask for `assertionEnded` events on passing assertions.
78+
* This is the default behaviour of e.g. Console or Compact reporter
79+
* Simple `REQUIRE(true)` is 60% faster in Release and 80% faster in Debug build configuration
80+
* Simple `REQUIRE_NOTHROW` is 230% faster in Release and 430% faster in Debug build configuration
81+
* 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)
82+
* Small (2-5%) improvement if the reporter asks for `assertionEnded` events for passing assertions.
83+
* The exit code constants are part of the Session API. (#2955, #2976)
84+
* Suppressed unsigned integer overflow checking in locations with intended overflow (#2965)
85+
* Reporters flush output after writing metadata, e.g. rng seed (#2964)
86+
* Added unreachable after `FAIL` and `SKIP` macros (#2941)
87+
* This allows the compiler to understand that the execution does not continue past the macro, and avoids warnings.
88+
* Added fast path for `assertionStarting` event when no reporter requires it
89+
* For backwards compatibility, this fast path is opt-in
90+
* A reporter can opt in by changing its `ReporterPreferences::shouldReportAllAssertionStarts`
91+
* Improved last seen source location tracking to be more precise
92+
* This is used when reporting unexpected exceptions from tests
93+
94+
### Fixes
95+
* Fixed formatting of tags with more than 100 tests in the default `--list-tags` output (#2963)
96+
* Fixed Clang-Tidy's `readability-static-accessed-through-instance` in tests
97+
* Fixed most of Clang-Tidy's `cppcoreguidelines-avoid-non-const-global-variables` (#2582)
98+
* The lifetime of scoped messages now strictly obeys their scope (#1759, #2019, #2959)
99+
* Previously Catch2 would try to keep them around during unexpected exception, to provide helpful context.
100+
* The amount of surprises the irregularities caused was not worth the occasional utility provided.
101+
* `TEMPLATE_TEST_CASE_SIG` can handle signatures consisting of only types (#2680, #2995)
102+
* Moved `catch_test_run_info.hpp` up from `internal/` subfolder into the main one (#2972)
103+
104+
### Miscellaneous
105+
* pkg-config files are now generated at install time (#2979)
106+
* This fixes missing debug suffix in library names
107+
* This fixes install prefix mismatch between build config and actuall installation
108+
109+
70110
## 3.8.1
71111

72112
### Fixes

docs/reporters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ Currently there are three customization options:
169169
`assertionStarting` events. Most reporters do not, and opting out
170170
explicitly enables a fast-path in Catch2's handling of assertions.
171171
172-
> `shouldReportAllAssertionStarts` was introduced in Catch2 X.Y.Z
172+
> `shouldReportAllAssertionStarts` was introduced in Catch2 3.9.0
173173
174174
175175
### Per-reporter configuration

docs/thread-safety.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[Fatal errors and multiple threads](#fatal-errors-and-multiple-threads)<br>
99
[Performance overhead](#performance-overhead)<br>
1010

11-
> Thread safe assertions were introduced in Catch2 X.Y.Z
11+
> Thread safe assertions were introduced in Catch2 3.9.0
1212
1313
Thread safety in Catch2 is currently limited to all the assertion macros.
1414
Interacting with benchmark macros, message macros (e.g. `INFO` or `CAPTURE`),

0 commit comments

Comments
 (0)