mirror of
https://github.com/catchorg/Catch2.git
synced 2025-08-01 12:55:40 +02:00
Add partial implementation of CATCH_CONFIG_DISABLE
* Assertions are defined into (void)(0) no-op * SECTIONs are defined away (leaving {} as scope) * TEST_CASEs and TEST_CASE_METHODs are not registered. * REGISTER_TEST_CASE is defined into (void)(0) no-op * METHOD_AS_TEST_CASE is defined away
This commit is contained in:
@@ -73,6 +73,7 @@ This can be useful on certain platforms that do not provide the standard iostrea
|
||||
CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals
|
||||
CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap
|
||||
CATCH_CONFIG_DISABLE_STRINGIFICATION // Disable stringifying the original expression
|
||||
CATCH_CONFIG_DISABLE // Disables assertions and test case registration
|
||||
|
||||
Currently Catch enables `CATCH_CONFIG_WINDOWS_SEH` only when compiled with MSVC, because some versions of MinGW do not have the necessary Win32 API support.
|
||||
|
||||
@@ -97,6 +98,13 @@ _Note: If you define `CATCH_CONFIG_DISABLE_MATCHERS` in the same file as Catch's
|
||||
## `CATCH_CONFIG_DISABLE_STRINGIFICATION`
|
||||
This toggle enables a workaround for VS 2017 bug. For details see [known limitations](limitations.md#Visual Studio 2017 -- raw string literal in assert fails to compile)
|
||||
|
||||
## `CATCH_CONFIG_DISABLE`
|
||||
This toggle removes most of Catch from given file. This means that `TEST_CASE`s are not registered and assertions are turned into no-ops. Useful for keeping tests within implementation files (ie for functions with internal linkage), instead of in external files.
|
||||
|
||||
This feature is considered experimental and might change at any point.
|
||||
|
||||
_Inspired by Doctest's `DOCTEST_CONFIG_DISABLE`_
|
||||
|
||||
# Windows header clutter
|
||||
|
||||
On Windows Catch includes `windows.h`. To minimize global namespace clutter in the implementation file, it defines `NOMINMAX` and `WIN32_LEAN_AND_MEAN` before including it. You can control this behaviour via two macros:
|
||||
|
@@ -9,6 +9,10 @@
|
||||
* Removed `Catch::toString` support
|
||||
* The new stringification machinery uses `Catch::StringMaker` specializations first and `operator<<` overloads second.
|
||||
* Removed legacy `SCOPED_MSG` and `SCOPED_INFO` macros
|
||||
* Removed `INTERNAL_CATCH_REGISTER_REPORTER`
|
||||
* `CATCH_REGISTER_REPORTER` should be used to register reporters
|
||||
* Removed legacy `[hide]` tag
|
||||
* `[.]`, `[.foo]` and `[!hide]` are still supported
|
||||
* Output into debugger is now colourized
|
||||
* `*_THROWS_AS(expr, exception_type)` now unconditionally appends `const&` to the exception type.
|
||||
* `CATCH_CONFIG_FAST_COMPILE` now affects the `CHECK_` family of assertions as well as `REQUIRE_` family of assertions
|
||||
@@ -29,6 +33,14 @@
|
||||
* Catch uses new CLI parsing library (Clara)
|
||||
* Users can now easily add new command line options to the final executable
|
||||
* This also leads to some changes in `Catch::Session` interface
|
||||
* All parts of matchers can be removed from a TU by defining `CATCH_CONFIG_DISABLE_MATCHERS`
|
||||
* This can be used to somewhat speed up compilation times
|
||||
* An experimental implementation of `CATCH_CONFIG_DISABLE` has been added
|
||||
* Speeds up compilation by removing away Catch tests
|
||||
* Currently removes all assertions and prevents `TEST_CASE` registrations
|
||||
* Useful for implementing tests in source files
|
||||
* ie for functions in anonymous namespaces
|
||||
* Inspired by Doctest's `DOCTEST_CONFIG_DISABLE`
|
||||
|
||||
## Fixes
|
||||
|
||||
|
Reference in New Issue
Block a user