mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Allow enabling multiple warnings in one invocation
This commit is contained in:
		| @@ -179,6 +179,7 @@ Nor would this | ||||
| :test-result: PASS Overloaded comma or address-of operators are not used | ||||
| :test-result: PASS Parse test names and tags | ||||
| :test-result: PASS Parsing sharding-related cli flags | ||||
| :test-result: PASS Parsing warnings | ||||
| :test-result: PASS Pointers can be compared to null | ||||
| :test-result: PASS Precision of floating point stringification can be set | ||||
| :test-result: PASS Predicate matcher can accept const char* | ||||
|   | ||||
| @@ -1200,6 +1200,11 @@ CmdLine.tests.cpp:<line number>: passed: !(result) for: !{?} | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), ContainsSubstring("Shard index must be a non-negative number") for: "Shard index must be a non-negative number" contains: "Shard index must be a non-negative number" | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({ "test", "--shard-index=0" }) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.shardIndex == 0 for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse( { "test", "-w", "NoAssertions" } ) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.warnings == WarnAbout::NoAssertions for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: !(cli.parse( { "test", "-w", "NoTests" } )) for: !{?} | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } ) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) for: 3 == 3 | ||||
| Condition.tests.cpp:<line number>: passed: p == 0 for: 0 == 0 | ||||
| Condition.tests.cpp:<line number>: passed: p == pNULL for: 0 == 0 | ||||
| Condition.tests.cpp:<line number>: passed: p != 0 for: 0x<hex digits> != 0 | ||||
|   | ||||
| @@ -1426,6 +1426,6 @@ due to unexpected exception with message: | ||||
|   Why would you throw a std::string? | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  376 |  299 passed |  70 failed |  7 failed as expected | ||||
| assertions: 2149 | 1993 passed | 129 failed | 27 failed as expected | ||||
| test cases:  377 |  300 passed |  70 failed |  7 failed as expected | ||||
| assertions: 2154 | 1998 passed | 129 failed | 27 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -8784,6 +8784,52 @@ CmdLine.tests.cpp:<line number>: PASSED: | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Parsing warnings | ||||
|   NoAssertions | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( cli.parse( { "test", "-w", "NoAssertions" } ) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.warnings == WarnAbout::NoAssertions ) | ||||
| with expansion: | ||||
|   1 == 1 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Parsing warnings | ||||
|   NoTests is no longer supported | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE_FALSE( cli.parse( { "test", "-w", "NoTests" } ) ) | ||||
| with expansion: | ||||
|   !{?} | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Parsing warnings | ||||
|   Combining multiple warnings | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } ) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) ) | ||||
| with expansion: | ||||
|   3 == 3 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Pointers can be compared to null | ||||
| ------------------------------------------------------------------------------- | ||||
| @@ -17275,6 +17321,6 @@ Misc.tests.cpp:<line number> | ||||
| Misc.tests.cpp:<line number>: PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  376 |  283 passed |  86 failed |  7 failed as expected | ||||
| assertions: 2166 | 1993 passed | 146 failed | 27 failed as expected | ||||
| test cases:  377 |  284 passed |  86 failed |  7 failed as expected | ||||
| assertions: 2171 | 1998 passed | 146 failed | 27 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuitesloose text artifact | ||||
| > | ||||
|   <testsuite name="<exe-name>" errors="17" failures="129" tests="2166" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="129" tests="2171" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <properties> | ||||
|       <property name="random-seed" value="1"/> | ||||
|       <property name="filters" value="~[!nonportable]~[!benchmark]~[approvals] *"/> | ||||
| @@ -1070,6 +1070,9 @@ Message.tests.cpp:<line number> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing sharding-related cli flags/shard-index" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing sharding-related cli flags/Negative shard index reports error" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing sharding-related cli flags/Shard index 0 is accepted" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing warnings/NoAssertions" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing warnings/NoTests is no longer supported" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Parsing warnings/Combining multiple warnings" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Pointers can be compared to null" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Precision of floating point stringification can be set/Floats" time="{duration}" status="run"/> | ||||
|     <testcase classname="<exe-name>.global" name="Precision of floating point stringification can be set/Double" time="{duration}" status="run"/> | ||||
|   | ||||
| @@ -52,6 +52,9 @@ | ||||
|     <testCase name="Parsing sharding-related cli flags/shard-index" duration="{duration}"/> | ||||
|     <testCase name="Parsing sharding-related cli flags/Negative shard index reports error" duration="{duration}"/> | ||||
|     <testCase name="Parsing sharding-related cli flags/Shard index 0 is accepted" duration="{duration}"/> | ||||
|     <testCase name="Parsing warnings/NoAssertions" duration="{duration}"/> | ||||
|     <testCase name="Parsing warnings/NoTests is no longer supported" duration="{duration}"/> | ||||
|     <testCase name="Parsing warnings/Combining multiple warnings" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/empty args don't cause a crash" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/default - no arguments" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/test lists/Specify one test case using" duration="{duration}"/> | ||||
|   | ||||
| @@ -2322,6 +2322,16 @@ ok {test-number} - result.errorMessage(), ContainsSubstring("Shard index must be | ||||
| ok {test-number} - cli.parse({ "test", "--shard-index=0" }) for: {?} | ||||
| # Parsing sharding-related cli flags | ||||
| ok {test-number} - config.shardIndex == 0 for: 0 == 0 | ||||
| # Parsing warnings | ||||
| ok {test-number} - cli.parse( { "test", "-w", "NoAssertions" } ) for: {?} | ||||
| # Parsing warnings | ||||
| ok {test-number} - config.warnings == WarnAbout::NoAssertions for: 1 == 1 | ||||
| # Parsing warnings | ||||
| ok {test-number} - !(cli.parse( { "test", "-w", "NoTests" } )) for: !{?} | ||||
| # Parsing warnings | ||||
| ok {test-number} - cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } ) for: {?} | ||||
| # Parsing warnings | ||||
| ok {test-number} - config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) for: 3 == 3 | ||||
| # Pointers can be compared to null | ||||
| ok {test-number} - p == 0 for: 0 == 0 | ||||
| # Pointers can be compared to null | ||||
| @@ -4334,5 +4344,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | ||||
| ok {test-number} - | ||||
| # xmlentitycheck | ||||
| ok {test-number} - | ||||
| 1..2166 | ||||
| 1..2171 | ||||
|  | ||||
|   | ||||
| @@ -463,6 +463,8 @@ Message.tests.cpp:<line number>|nexplicit failure with message:|n  "Message from | ||||
| ##teamcity[testFinished name='Parse test names and tags' duration="{duration}"] | ||||
| ##teamcity[testStarted name='Parsing sharding-related cli flags'] | ||||
| ##teamcity[testFinished name='Parsing sharding-related cli flags' duration="{duration}"] | ||||
| ##teamcity[testStarted name='Parsing warnings'] | ||||
| ##teamcity[testFinished name='Parsing warnings' duration="{duration}"] | ||||
| ##teamcity[testStarted name='Pointers can be compared to null'] | ||||
| ##teamcity[testFinished name='Pointers can be compared to null' duration="{duration}"] | ||||
| ##teamcity[testStarted name='Precision of floating point stringification can be set'] | ||||
|   | ||||
| @@ -10679,6 +10679,58 @@ Nor would this | ||||
|     </Section> | ||||
|     <OverallResult success="true"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="Parsing warnings" tags="[cli][warnings]" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|     <Section name="NoAssertions" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Original> | ||||
|           cli.parse( { "test", "-w", "NoAssertions" } ) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           {?} | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Original> | ||||
|           config.warnings == WarnAbout::NoAssertions | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           1 == 1 | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|     </Section> | ||||
|     <Section name="NoTests is no longer supported" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE_FALSE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Original> | ||||
|           !(cli.parse( { "test", "-w", "NoTests" } )) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           !{?} | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <OverallResults successes="1" failures="0" expectedFailures="0"/> | ||||
|     </Section> | ||||
|     <Section name="Combining multiple warnings" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|       <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Original> | ||||
|           cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } ) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           {?} | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Original> | ||||
|           config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) | ||||
|         </Original> | ||||
|         <Expanded> | ||||
|           3 == 3 | ||||
|         </Expanded> | ||||
|       </Expression> | ||||
|       <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|     </Section> | ||||
|     <OverallResult success="true"/> | ||||
|   </TestCase> | ||||
|   <TestCase name="Pointers can be compared to null" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" > | ||||
|     <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Condition.tests.cpp" > | ||||
|       <Original> | ||||
| @@ -20238,6 +20290,6 @@ loose text artifact | ||||
|     </Section> | ||||
|     <OverallResult success="true"/> | ||||
|   </TestCase> | ||||
|   <OverallResults successes="1993" failures="146" expectedFailures="27"/> | ||||
|   <OverallResultsCases successes="283" failures="86" expectedFailures="7"/> | ||||
|   <OverallResults successes="1998" failures="146" expectedFailures="27"/> | ||||
|   <OverallResultsCases successes="284" failures="86" expectedFailures="7"/> | ||||
| </Catch2TestRun> | ||||
|   | ||||
| @@ -618,6 +618,28 @@ TEST_CASE("Parsing sharding-related cli flags", "[sharding]") { | ||||
|  | ||||
| } | ||||
|  | ||||
| TEST_CASE( "Parsing warnings", "[cli][warnings]" ) { | ||||
|     using Catch::WarnAbout; | ||||
|  | ||||
|     Catch::ConfigData config; | ||||
|     auto cli = Catch::makeCommandLineParser( config ); | ||||
|  | ||||
|     SECTION( "NoAssertions" ) { | ||||
|         REQUIRE(cli.parse( { "test", "-w", "NoAssertions" } )); | ||||
|         REQUIRE( config.warnings == WarnAbout::NoAssertions ); | ||||
|     } | ||||
|     SECTION( "NoTests is no longer supported" ) { | ||||
|         REQUIRE_FALSE(cli.parse( { "test", "-w", "NoTests" } )); | ||||
|     } | ||||
|     SECTION( "Combining multiple warnings" ) { | ||||
|         REQUIRE( cli.parse( { "test", | ||||
|                               "--warn", "NoAssertions", | ||||
|                               "--warn", "UnmatchedTestSpec" } ) ); | ||||
|  | ||||
|         REQUIRE( config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec ) ); | ||||
|     } | ||||
| } | ||||
|  | ||||
| TEST_CASE("Test with special, characters \"in name", "[cli][regression]") { | ||||
|     // This test case succeeds if we can invoke it from the CLI | ||||
|     SUCCEED(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský