mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	
				
					committed by
					
						
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			
						parent
						
							b7f41237b1
						
					
				
				
					commit
					8b3c09c137
				
			@@ -10,6 +10,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "catch_string_manip.h"
 | 
					#include "catch_string_manip.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "catch_interfaces_registry_hub.h"
 | 
				
			||||||
 | 
					#include "catch_interfaces_reporter.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <fstream>
 | 
					#include <fstream>
 | 
				
			||||||
#include <ctime>
 | 
					#include <ctime>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -105,6 +108,18 @@ namespace Catch {
 | 
				
			|||||||
                return ParserResult::runtimeError( "Unrecognised verbosity, '" + verbosity + "'" );
 | 
					                return ParserResult::runtimeError( "Unrecognised verbosity, '" + verbosity + "'" );
 | 
				
			||||||
            return ParserResult::ok( ParseResultType::Matched );
 | 
					            return ParserResult::ok( ParseResultType::Matched );
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					        auto const setReporter = [&]( std::string const& reporter ) {
 | 
				
			||||||
 | 
					            IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            auto lcReporter = toLower( reporter );
 | 
				
			||||||
 | 
					            auto result = factories.find( lcReporter );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if( factories.end() != result )
 | 
				
			||||||
 | 
					                config.reporterName = lcReporter;
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                return ParserResult::runtimeError( "Unrecognized reporter, '" + reporter + "'. Check available with --list-reporters" );
 | 
				
			||||||
 | 
					            return ParserResult::ok( ParseResultType::Matched );
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        auto cli
 | 
					        auto cli
 | 
				
			||||||
            = ExeName( config.processName )
 | 
					            = ExeName( config.processName )
 | 
				
			||||||
@@ -130,7 +145,7 @@ namespace Catch {
 | 
				
			|||||||
            | Opt( config.outputFilename, "filename" )
 | 
					            | Opt( config.outputFilename, "filename" )
 | 
				
			||||||
                ["-o"]["--out"]
 | 
					                ["-o"]["--out"]
 | 
				
			||||||
                ( "output filename" )
 | 
					                ( "output filename" )
 | 
				
			||||||
            | Opt( config.reporterName, "name" )
 | 
					            | Opt( setReporter, "name" )
 | 
				
			||||||
                ["-r"]["--reporter"]
 | 
					                ["-r"]["--reporter"]
 | 
				
			||||||
                ( "reporter to use (defaults to console)" )
 | 
					                ( "reporter to use (defaults to console)" )
 | 
				
			||||||
            | Opt( config.name, "name" )
 | 
					            | Opt( config.name, "name" )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -707,6 +707,8 @@ CmdLine.tests.cpp:<line number>: passed: config.reporterName == "xml" for: "xml"
 | 
				
			|||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--reporter", "junit"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--reporter", "junit"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.reporterName == "junit" for: "junit" == "junit"
 | 
					CmdLine.tests.cpp:<line number>: passed: config.reporterName == "junit" for: "junit" == "junit"
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?}
 | 
					CmdLine.tests.cpp:<line number>: passed: !(cli.parse({ "test", "-r", "xml", "-r", "junit" })) for: !{?}
 | 
				
			||||||
 | 
					CmdLine.tests.cpp:<line number>: passed: !result for: true
 | 
				
			||||||
 | 
					CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("Unrecognized reporter") for: "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-b"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-b"}) for: {?}
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak == true for: true == true
 | 
					CmdLine.tests.cpp:<line number>: passed: config.shouldDebugBreak == true for: true == true
 | 
				
			||||||
CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--break"}) for: {?}
 | 
					CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--break"}) for: {?}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1099,5 +1099,5 @@ due to unexpected exception with message:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
===============================================================================
 | 
					===============================================================================
 | 
				
			||||||
test cases:  215 |  162 passed |  49 failed |  4 failed as expected
 | 
					test cases:  215 |  162 passed |  49 failed |  4 failed as expected
 | 
				
			||||||
assertions: 1231 | 1102 passed | 108 failed | 21 failed as expected
 | 
					assertions: 1233 | 1104 passed | 108 failed | 21 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5977,6 +5977,27 @@ PASSED:
 | 
				
			|||||||
with expansion:
 | 
					with expansion:
 | 
				
			||||||
  !{?}
 | 
					  !{?}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Process can be configured on command line
 | 
				
			||||||
 | 
					  reporter
 | 
				
			||||||
 | 
					  must match one of the available ones
 | 
				
			||||||
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					CmdLine.tests.cpp:<line number>
 | 
				
			||||||
 | 
					...............................................................................
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CmdLine.tests.cpp:<line number>:
 | 
				
			||||||
 | 
					PASSED:
 | 
				
			||||||
 | 
					  CHECK( !result )
 | 
				
			||||||
 | 
					with expansion:
 | 
				
			||||||
 | 
					  true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CmdLine.tests.cpp:<line number>:
 | 
				
			||||||
 | 
					PASSED:
 | 
				
			||||||
 | 
					  REQUIRE_THAT( result.errorMessage(), Contains("Unrecognized reporter") )
 | 
				
			||||||
 | 
					with expansion:
 | 
				
			||||||
 | 
					  "Unrecognized reporter, 'unsupported'. Check available with --list-reporters"
 | 
				
			||||||
 | 
					  contains: "Unrecognized reporter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-------------------------------------------------------------------------------
 | 
					-------------------------------------------------------------------------------
 | 
				
			||||||
Process can be configured on command line
 | 
					Process can be configured on command line
 | 
				
			||||||
  debugger
 | 
					  debugger
 | 
				
			||||||
@@ -10865,5 +10886,5 @@ PASSED:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
===============================================================================
 | 
					===============================================================================
 | 
				
			||||||
test cases:  215 |  149 passed |  62 failed |  4 failed as expected
 | 
					test cases:  215 |  149 passed |  62 failed |  4 failed as expected
 | 
				
			||||||
assertions: 1245 | 1102 passed | 122 failed | 21 failed as expected
 | 
					assertions: 1247 | 1104 passed | 122 failed | 21 failed as expected
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
<testsuitesloose text artifact
 | 
					<testsuitesloose text artifact
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
  <testsuite name="<exe-name>" errors="17" failures="106" tests="1246" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
					  <testsuite name="<exe-name>" errors="17" failures="106" tests="1248" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}">
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="# A test name that starts with a #" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="#1005: Comparing pointer to int and long (NULL can be either on various systems)" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="#1005: Comparing pointer to int and long (NULL can be either on various systems)" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="#1027" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="#1027" time="{duration}"/>
 | 
				
			||||||
@@ -489,6 +489,7 @@ Message.tests.cpp:<line number>
 | 
				
			|||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/-r/xml" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/-r/xml" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/--reporter/junit" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/--reporter/junit" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/Only one reporter is accepted" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/Only one reporter is accepted" time="{duration}"/>
 | 
				
			||||||
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/reporter/must match one of the available ones" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/-b" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/-b" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/--break" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/debugger/--break" time="{duration}"/>
 | 
				
			||||||
    <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/-a aborts after first failure" time="{duration}"/>
 | 
					    <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/-a aborts after first failure" time="{duration}"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6237,6 +6237,28 @@
 | 
				
			|||||||
        </Section>
 | 
					        </Section>
 | 
				
			||||||
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
 | 
					        <OverallResults successes="1" failures="0" expectedFailures="0"/>
 | 
				
			||||||
      </Section>
 | 
					      </Section>
 | 
				
			||||||
 | 
					      <Section name="reporter" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
 | 
					        <Section name="must match one of the available ones" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
 | 
					          <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
 | 
					            <Original>
 | 
				
			||||||
 | 
					              !result
 | 
				
			||||||
 | 
					            </Original>
 | 
				
			||||||
 | 
					            <Expanded>
 | 
				
			||||||
 | 
					              true
 | 
				
			||||||
 | 
					            </Expanded>
 | 
				
			||||||
 | 
					          </Expression>
 | 
				
			||||||
 | 
					          <Expression success="true" type="REQUIRE_THAT" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
 | 
					            <Original>
 | 
				
			||||||
 | 
					              result.errorMessage(), Contains("Unrecognized reporter")
 | 
				
			||||||
 | 
					            </Original>
 | 
				
			||||||
 | 
					            <Expanded>
 | 
				
			||||||
 | 
					              "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
 | 
				
			||||||
 | 
					            </Expanded>
 | 
				
			||||||
 | 
					          </Expression>
 | 
				
			||||||
 | 
					          <OverallResults successes="2" failures="0" expectedFailures="0"/>
 | 
				
			||||||
 | 
					        </Section>
 | 
				
			||||||
 | 
					        <OverallResults successes="2" failures="0" expectedFailures="0"/>
 | 
				
			||||||
 | 
					      </Section>
 | 
				
			||||||
      <Section name="debugger" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					      <Section name="debugger" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
        <Section name="-b" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					        <Section name="-b" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
          <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
					          <Expression success="true" type="CHECK" filename="projects/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" >
 | 
				
			||||||
@@ -11336,7 +11358,7 @@ loose text artifact
 | 
				
			|||||||
      </Section>
 | 
					      </Section>
 | 
				
			||||||
      <OverallResult success="true"/>
 | 
					      <OverallResult success="true"/>
 | 
				
			||||||
    </TestCase>
 | 
					    </TestCase>
 | 
				
			||||||
    <OverallResults successes="1102" failures="123" expectedFailures="21"/>
 | 
					    <OverallResults successes="1104" failures="123" expectedFailures="21"/>
 | 
				
			||||||
  </Group>
 | 
					  </Group>
 | 
				
			||||||
  <OverallResults successes="1102" failures="122" expectedFailures="21"/>
 | 
					  <OverallResults successes="1104" failures="122" expectedFailures="21"/>
 | 
				
			||||||
</Catch>
 | 
					</Catch>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -280,7 +280,6 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
        CHECK(config.processName == "");
 | 
					        CHECK(config.processName == "");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    SECTION("default - no arguments") {
 | 
					    SECTION("default - no arguments") {
 | 
				
			||||||
        auto result = cli.parse({"test"});
 | 
					        auto result = cli.parse({"test"});
 | 
				
			||||||
        CHECK(result);
 | 
					        CHECK(result);
 | 
				
			||||||
@@ -345,8 +344,15 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]"
 | 
				
			|||||||
        SECTION("Only one reporter is accepted") {
 | 
					        SECTION("Only one reporter is accepted") {
 | 
				
			||||||
            REQUIRE_FALSE(cli.parse({ "test", "-r", "xml", "-r", "junit" }));
 | 
					            REQUIRE_FALSE(cli.parse({ "test", "-r", "xml", "-r", "junit" }));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					        SECTION("must match one of the available ones") {
 | 
				
			||||||
 | 
					            auto result = cli.parse({"test", "--reporter", "unsupported"});
 | 
				
			||||||
 | 
					            CHECK(!result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef CATCH_CONFIG_DISABLE_MATCHERS
 | 
				
			||||||
 | 
					            REQUIRE_THAT(result.errorMessage(), Contains("Unrecognized reporter"));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    SECTION("debugger") {
 | 
					    SECTION("debugger") {
 | 
				
			||||||
        SECTION("-b") {
 | 
					        SECTION("-b") {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user