mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Refactor colour handling to prepare for per-reporter colour modes
This includes always compiling the ANSI and None colour implementations, as they don't need to touch any platform specific APIs, and removing their respective compile-time configuration options. Because the Win32 colour implementation requires Win32-specific APIs, it is still hidden behind a compile-time toggle, `CATCH_CONFIG_COLOUR_WIN32` (renamed from `..._COLOUR_WINDOWS`). The commandline options for colours were also changed. The option now uses different name, and allows to select between different implementations, rather than changing whether the compiled-in colour implementation is used through "yes/no/default" options.
This commit is contained in:
		| @@ -473,6 +473,17 @@ set_tests_properties("Reporters::DashAsLocationInReporterSpecSendsOutputToStdout | ||||
|     PASS_REGULAR_EXPRESSION "All tests passed \\(5 assertions in 1 test case\\)" | ||||
| ) | ||||
|  | ||||
| add_test(NAME "Colours::ColourModeCanBeExplicitlySetToAnsi" | ||||
|   COMMAND | ||||
|     $<TARGET_FILE:SelfTest> "Factorials are computed" | ||||
|       --reporter console | ||||
|       --colour-mode ansi | ||||
| ) | ||||
| set_tests_properties("Colours::ColourModeCanBeExplicitlySetToAnsi" | ||||
|   PROPERTIES | ||||
|     PASS_REGULAR_EXPRESSION "\\[1\;32mAll tests passed" | ||||
| ) | ||||
|  | ||||
| if (CATCH_ENABLE_CONFIGURE_TESTS) | ||||
|     add_test(NAME "CMakeConfig::DefaultReporter" | ||||
|       COMMAND | ||||
|   | ||||
| @@ -1381,15 +1381,15 @@ CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 1 for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: config.noThrow == true for: true == true | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Auto for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "auto"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Auto for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "yes"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Yes for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "no"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2 | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse( { "test", "--colour-mode", "default" } ) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--colour-mode", "ansi"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::ANSI for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--colour-mode", "none"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::None for: 3 == 3 | ||||
| CmdLine.tests.cpp:<line number>: passed: !result for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-samples=200" }) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.benchmarkSamples == 200 for: 200 == 200 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-resamples=20000" }) for: {?} | ||||
|   | ||||
| @@ -1379,15 +1379,15 @@ CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 1 for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: config.noThrow == true for: true == true | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Auto for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "auto"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Auto for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "yes"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::Yes for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--use-colour", "no"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.useColour == UseColour::No for: 2 == 2 | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse( { "test", "--colour-mode", "default" } ) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--colour-mode", "ansi"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::ANSI for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--colour-mode", "none"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.colourMode == ColourMode::None for: 3 == 3 | ||||
| CmdLine.tests.cpp:<line number>: passed: !result for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-samples=200" }) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.benchmarkSamples == 200 for: 200 == 200 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--benchmark-resamples=20000" }) for: {?} | ||||
|   | ||||
| @@ -9969,7 +9969,7 @@ with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Auto ) | ||||
|   REQUIRE( config.colourMode == ColourMode::PlatformDefault ) | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| @@ -9982,12 +9982,12 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "auto"}) ) | ||||
|   CHECK( cli.parse( { "test", "--colour-mode", "default" } ) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Auto ) | ||||
|   REQUIRE( config.colourMode == ColourMode::PlatformDefault ) | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| @@ -10000,12 +10000,12 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "yes"}) ) | ||||
|   CHECK( cli.parse({"test", "--colour-mode", "ansi"}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Yes ) | ||||
|   REQUIRE( config.colourMode == ColourMode::ANSI ) | ||||
| with expansion: | ||||
|   1 == 1 | ||||
|  | ||||
| @@ -10018,14 +10018,14 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "no"}) ) | ||||
|   CHECK( cli.parse({"test", "--colour-mode", "none"}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::No ) | ||||
|   REQUIRE( config.colourMode == ColourMode::None ) | ||||
| with expansion: | ||||
|   2 == 2 | ||||
|   3 == 3 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
| @@ -10043,8 +10043,8 @@ with expansion: | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) ) | ||||
| with expansion: | ||||
|   "colour mode must be one of: auto, yes or no. 'wrong' not recognised" | ||||
|   contains: "colour mode must be one of" | ||||
|   "colour mode must be one of: default, ansi, win32, or none. 'wrong' not | ||||
|   recognised" contains: "colour mode must be one of" | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   | ||||
| @@ -9967,7 +9967,7 @@ with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Auto ) | ||||
|   REQUIRE( config.colourMode == ColourMode::PlatformDefault ) | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| @@ -9980,12 +9980,12 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "auto"}) ) | ||||
|   CHECK( cli.parse( { "test", "--colour-mode", "default" } ) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Auto ) | ||||
|   REQUIRE( config.colourMode == ColourMode::PlatformDefault ) | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| @@ -9998,12 +9998,12 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "yes"}) ) | ||||
|   CHECK( cli.parse({"test", "--colour-mode", "ansi"}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::Yes ) | ||||
|   REQUIRE( config.colourMode == ColourMode::ANSI ) | ||||
| with expansion: | ||||
|   1 == 1 | ||||
|  | ||||
| @@ -10016,14 +10016,14 @@ CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--use-colour", "no"}) ) | ||||
|   CHECK( cli.parse({"test", "--colour-mode", "none"}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.useColour == UseColour::No ) | ||||
|   REQUIRE( config.colourMode == ColourMode::None ) | ||||
| with expansion: | ||||
|   2 == 2 | ||||
|   3 == 3 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
| @@ -10041,8 +10041,8 @@ with expansion: | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) ) | ||||
| with expansion: | ||||
|   "colour mode must be one of: auto, yes or no. 'wrong' not recognised" | ||||
|   contains: "colour mode must be one of" | ||||
|   "colour mode must be one of: default, ansi, win32, or none. 'wrong' not | ||||
|   recognised" contains: "colour mode must be one of" | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   | ||||
| @@ -2601,23 +2601,23 @@ ok {test-number} - config.noThrow == true for: true == true | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Auto for: 0 == 0 | ||||
| ok {test-number} - config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "auto"}) for: {?} | ||||
| ok {test-number} - cli.parse( { "test", "--colour-mode", "default" } ) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Auto for: 0 == 0 | ||||
| ok {test-number} - config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "yes"}) for: {?} | ||||
| ok {test-number} - cli.parse({"test", "--colour-mode", "ansi"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Yes for: 1 == 1 | ||||
| ok {test-number} - config.colourMode == ColourMode::ANSI for: 1 == 1 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "no"}) for: {?} | ||||
| ok {test-number} - cli.parse({"test", "--colour-mode", "none"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::No for: 2 == 2 | ||||
| ok {test-number} - config.colourMode == ColourMode::None for: 3 == 3 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - !result for: true | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| ok {test-number} - result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({ "test", "--benchmark-samples=200" }) for: {?} | ||||
| # Process can be configured on command line | ||||
|   | ||||
| @@ -2599,23 +2599,23 @@ ok {test-number} - config.noThrow == true for: true == true | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Auto for: 0 == 0 | ||||
| ok {test-number} - config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "auto"}) for: {?} | ||||
| ok {test-number} - cli.parse( { "test", "--colour-mode", "default" } ) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Auto for: 0 == 0 | ||||
| ok {test-number} - config.colourMode == ColourMode::PlatformDefault for: 0 == 0 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "yes"}) for: {?} | ||||
| ok {test-number} - cli.parse({"test", "--colour-mode", "ansi"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::Yes for: 1 == 1 | ||||
| ok {test-number} - config.colourMode == ColourMode::ANSI for: 1 == 1 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--use-colour", "no"}) for: {?} | ||||
| ok {test-number} - cli.parse({"test", "--colour-mode", "none"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.useColour == UseColour::No for: 2 == 2 | ||||
| ok {test-number} - config.colourMode == ColourMode::None for: 3 == 3 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - !result for: true | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| ok {test-number} - result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) for: "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({ "test", "--benchmark-samples=200" }) for: {?} | ||||
| # Process can be configured on command line | ||||
|   | ||||
| @@ -12165,7 +12165,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Auto | ||||
|             config.colourMode == ColourMode::PlatformDefault | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             0 == 0 | ||||
| @@ -12179,7 +12179,7 @@ C | ||||
|       <Section name="auto" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "auto"}) | ||||
|             cli.parse( { "test", "--colour-mode", "default" } ) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12187,7 +12187,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Auto | ||||
|             config.colourMode == ColourMode::PlatformDefault | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             0 == 0 | ||||
| @@ -12201,7 +12201,7 @@ C | ||||
|       <Section name="yes" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "yes"}) | ||||
|             cli.parse({"test", "--colour-mode", "ansi"}) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12209,7 +12209,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Yes | ||||
|             config.colourMode == ColourMode::ANSI | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1 == 1 | ||||
| @@ -12223,7 +12223,7 @@ C | ||||
|       <Section name="no" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "no"}) | ||||
|             cli.parse({"test", "--colour-mode", "none"}) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12231,10 +12231,10 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::No | ||||
|             config.colourMode == ColourMode::None | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             2 == 2 | ||||
|             3 == 3 | ||||
|           </Expanded> | ||||
|         </Expression> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
| @@ -12256,7 +12256,7 @@ C | ||||
|             result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
|             "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
|           </Expanded> | ||||
|         </Expression> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|   | ||||
| @@ -12165,7 +12165,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Auto | ||||
|             config.colourMode == ColourMode::PlatformDefault | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             0 == 0 | ||||
| @@ -12179,7 +12179,7 @@ C | ||||
|       <Section name="auto" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "auto"}) | ||||
|             cli.parse( { "test", "--colour-mode", "default" } ) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12187,7 +12187,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Auto | ||||
|             config.colourMode == ColourMode::PlatformDefault | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             0 == 0 | ||||
| @@ -12201,7 +12201,7 @@ C | ||||
|       <Section name="yes" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "yes"}) | ||||
|             cli.parse({"test", "--colour-mode", "ansi"}) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12209,7 +12209,7 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::Yes | ||||
|             config.colourMode == ColourMode::ANSI | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             1 == 1 | ||||
| @@ -12223,7 +12223,7 @@ C | ||||
|       <Section name="no" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             cli.parse({"test", "--use-colour", "no"}) | ||||
|             cli.parse({"test", "--colour-mode", "none"}) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             {?} | ||||
| @@ -12231,10 +12231,10 @@ C | ||||
|         </Expression> | ||||
|         <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Original> | ||||
|             config.useColour == UseColour::No | ||||
|             config.colourMode == ColourMode::None | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             2 == 2 | ||||
|             3 == 3 | ||||
|           </Expanded> | ||||
|         </Expression> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
| @@ -12256,7 +12256,7 @@ C | ||||
|             result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) | ||||
|           </Original> | ||||
|           <Expanded> | ||||
|             "colour mode must be one of: auto, yes or no. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
|             "colour mode must be one of: default, ansi, win32, or none. 'wrong' not recognised" contains: "colour mode must be one of" | ||||
|           </Expanded> | ||||
|         </Expression> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|   | ||||
| @@ -15,6 +15,8 @@ | ||||
| #include <catch2/catch_test_case_info.hpp> | ||||
| #include <catch2/internal/catch_commandline.hpp> | ||||
| #include <catch2/generators/catch_generators.hpp> | ||||
| #include <catch2/internal/catch_compiler_capabilities.hpp> | ||||
|  | ||||
|  | ||||
| namespace { | ||||
|     auto fakeTestCase(const char* name, const char* desc = "") { return Catch::makeTestCaseInfo("", { name, desc }, CATCH_INTERNAL_LINEINFO); } | ||||
| @@ -556,34 +558,34 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]" | ||||
|  | ||||
|     SECTION( "use-colour") { | ||||
|  | ||||
|         using Catch::UseColour; | ||||
|         using Catch::ColourMode; | ||||
|  | ||||
|         SECTION( "without option" ) { | ||||
|             CHECK(cli.parse({"test"})); | ||||
|  | ||||
|             REQUIRE( config.useColour == UseColour::Auto ); | ||||
|             REQUIRE( config.colourMode == ColourMode::PlatformDefault ); | ||||
|         } | ||||
|  | ||||
|         SECTION( "auto" ) { | ||||
|             CHECK(cli.parse({"test", "--use-colour", "auto"})); | ||||
|             CHECK( cli.parse( { "test", "--colour-mode", "default" } ) ); | ||||
|  | ||||
|             REQUIRE( config.useColour == UseColour::Auto ); | ||||
|             REQUIRE( config.colourMode == ColourMode::PlatformDefault ); | ||||
|         } | ||||
|  | ||||
|         SECTION( "yes" ) { | ||||
|             CHECK(cli.parse({"test", "--use-colour", "yes"})); | ||||
|             CHECK(cli.parse({"test", "--colour-mode", "ansi"})); | ||||
|  | ||||
|             REQUIRE( config.useColour == UseColour::Yes ); | ||||
|             REQUIRE( config.colourMode == ColourMode::ANSI ); | ||||
|         } | ||||
|  | ||||
|         SECTION( "no" ) { | ||||
|             CHECK(cli.parse({"test", "--use-colour", "no"})); | ||||
|             CHECK(cli.parse({"test", "--colour-mode", "none"})); | ||||
|  | ||||
|             REQUIRE( config.useColour == UseColour::No ); | ||||
|             REQUIRE( config.colourMode == ColourMode::None ); | ||||
|         } | ||||
|  | ||||
|         SECTION( "error" ) { | ||||
|             auto result = cli.parse({"test", "--use-colour", "wrong"}); | ||||
|             auto result = cli.parse({"test", "--colour-mode", "wrong"}); | ||||
|             CHECK( !result ); | ||||
|             CHECK_THAT( result.errorMessage(), ContainsSubstring( "colour mode must be one of" ) ); | ||||
|         } | ||||
| @@ -712,3 +714,17 @@ TEST_CASE("Various suspicious reporter specs are rejected", | ||||
|     auto result = cli.parse( { "test", "--reporter", spec } ); | ||||
|     REQUIRE_FALSE( result ); | ||||
| } | ||||
|  | ||||
| TEST_CASE("Win32 colour implementation is compile-time optional", | ||||
|           "[approvals][cli][colours]") { | ||||
|     Catch::ConfigData config; | ||||
|     auto cli = Catch::makeCommandLineParser( config ); | ||||
|  | ||||
|     auto result = cli.parse( { "test", "--colour-mode", "win32" } ); | ||||
|  | ||||
| #if defined( CATCH_CONFIG_COLOUR_WIN32 ) | ||||
|     REQUIRE( result ); | ||||
| #else | ||||
|     REQUIRE_FALSE( result ); | ||||
| #endif | ||||
| } | ||||
|   | ||||
| @@ -64,10 +64,7 @@ TEST_CASE( "The default listing implementation write to provided stream", | ||||
|             { "fake test name"_catch_sr, "[fakeTestTag]"_catch_sr }, | ||||
|             { "fake-file.cpp", 123456789 } }; | ||||
|         std::vector<Catch::TestCaseHandle> tests({ {&fakeInfo, nullptr} }); | ||||
|         Catch::ConfigData cd; | ||||
|         cd.useColour = Catch::UseColour::No; | ||||
|         Catch::Config conf(cd); | ||||
|         auto colour = Catch::makeColourImpl( &conf, &sstream); | ||||
|         auto colour = Catch::makeColourImpl( Catch::ColourMode::None, &sstream); | ||||
|         Catch::defaultListTests(sstream.stream(), colour.get(), tests, false, Catch::Verbosity::Normal); | ||||
|  | ||||
|         auto listingString = sstream.str(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský