mirror of
https://github.com/catchorg/Catch2.git
synced 2025-08-01 21:05:39 +02: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