mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	 Maciej Patro
					Maciej Patro
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						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