mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 04:07:10 +01:00 
			
		
		
		
	Add test for CATCH_CONFIG_DISABLE_STRINGIFICATION
This commit is contained in:
		| @@ -17,13 +17,37 @@ set( SINGLE_INCLUDE_PATH ${CATCH_DIR}/single_include ) | ||||
|  | ||||
|  | ||||
| add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp) | ||||
| add_test(NAME FallbackStringifier COMMAND FallbackStringifier -r compact -s) | ||||
| set_tests_properties(FallbackStringifier PROPERTIES PASS_REGULAR_EXPRESSION "foo{} for: { !!! }") | ||||
|  | ||||
|  | ||||
| set_property( TARGET FallbackStringifier PROPERTY CXX_STANDARD 11 ) | ||||
| set_property( TARGET FallbackStringifier PROPERTY CXX_STANDARD_REQUIRED ON ) | ||||
| set_property( TARGET FallbackStringifier PROPERTY CXX_EXTENSIONS OFF ) | ||||
|  | ||||
| target_include_directories( FallbackStringifier PRIVATE ${SINGLE_INCLUDE_PATH} ) | ||||
| target_compile_definitions( FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier ) | ||||
|  | ||||
| add_test(NAME FallbackStringifier COMMAND FallbackStringifier -r compact -s) | ||||
| set_tests_properties( | ||||
|     FallbackStringifier | ||||
|   PROPERTIES | ||||
|     PASS_REGULAR_EXPRESSION "foo{} for: { !!! }" | ||||
| ) | ||||
|  | ||||
|  | ||||
| add_executable(DisableStringification ${TESTS_DIR}/X11-DisableStringification.cpp) | ||||
| target_compile_definitions( DisableStringification PRIVATE CATCH_CONFIG_DISABLE_STRINGIFICATION ) | ||||
| add_test(NAME CATCH_CONFIG_DISABLE_STRINGIFICATION COMMAND DisableStringification -r compact -s) | ||||
| set_tests_properties( | ||||
|     CATCH_CONFIG_DISABLE_STRINGIFICATION | ||||
|   PROPERTIES | ||||
|     PASS_REGULAR_EXPRESSION "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION" | ||||
|     FAIL_REGULAR_EXPRESSION  "Hidden{} == Hidden{}" | ||||
| ) | ||||
|  | ||||
|  | ||||
| set( EXTRA_TEST_BINARIES | ||||
|     FallbackStringifier | ||||
|     DisableStringification | ||||
| ) | ||||
|  | ||||
| # Shared config | ||||
| foreach( test ${EXTRA_TEST_BINARIES} ) | ||||
|     set_property( TARGET ${test} PROPERTY CXX_STANDARD 11 ) | ||||
|     set_property( TARGET ${test} PROPERTY CXX_STANDARD_REQUIRED ON ) | ||||
|     set_property( TARGET ${test} PROPERTY CXX_EXTENSIONS OFF ) | ||||
|     target_include_directories( ${test} PRIVATE ${SINGLE_INCLUDE_PATH} ) | ||||
| endforeach() | ||||
|  | ||||
|   | ||||
| @@ -7,6 +7,5 @@ yet: | ||||
|     CATCH_CONFIG_DISABLE_MATCHERS           // Do not compile Matchers in this compilation unit | ||||
|     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 | ||||
|     CATCH_CONFIG_DEFAULT_REPORTER | ||||
|   | ||||
							
								
								
									
										16
									
								
								projects/ExtraTests/X11-DisableStringification.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								projects/ExtraTests/X11-DisableStringification.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| // X11-DisableStringification.cpp | ||||
| // Test that stringification of original expression can be disabled | ||||
| // this is a workaround for VS 2017 issue with Raw String literal | ||||
| // and preprocessor token pasting. In other words, hopefully this test | ||||
| // will be deleted soon :-) | ||||
|  | ||||
| #define CATCH_CONFIG_MAIN | ||||
| #include <catch2/catch.hpp> | ||||
|  | ||||
| struct Hidden {}; | ||||
|  | ||||
| bool operator==(Hidden, Hidden) { return true; } | ||||
|  | ||||
| TEST_CASE("DisableStringification") { | ||||
|     REQUIRE( Hidden{} == Hidden{} ); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský