mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01: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
	 Martin Hořeňovský
					Martin Hořeňovský