mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Add command line option 'never' to --wait-for-keypress (#1866)
Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
This commit is contained in:
		 Tristan Stenner
					Tristan Stenner
				
			
				
					committed by
					
						 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
			
				
	
			
			
			 Martin Hořeňovský
						Martin Hořeňovský
					
				
			
						parent
						
							2441c2faab
						
					
				
				
					commit
					6a2c025bfc
				
			| @@ -271,7 +271,7 @@ See [The LibIdentify repo for more information and examples](https://github.com/ | ||||
|  | ||||
| <a id="wait-for-keypress"></a> | ||||
| ## Wait for key before continuing | ||||
| <pre>--wait-for-keypress <start|exit|both></pre> | ||||
| <pre>--wait-for-keypress <never|start|exit|both></pre> | ||||
|  | ||||
| Will cause the executable to print a message and wait until the return/ enter key is pressed before continuing - | ||||
| either before running any tests, after running all tests - or both, depending on the argument. | ||||
|   | ||||
| @@ -91,14 +91,16 @@ namespace Catch { | ||||
|             }; | ||||
|         auto const setWaitForKeypress = [&]( std::string const& keypress ) { | ||||
|                 auto keypressLc = toLower( keypress ); | ||||
|                 if( keypressLc == "start" ) | ||||
|                 if (keypressLc == "never") | ||||
|                     config.waitForKeypress = WaitForKeypress::Never; | ||||
|                 else if( keypressLc == "start" ) | ||||
|                     config.waitForKeypress = WaitForKeypress::BeforeStart; | ||||
|                 else if( keypressLc == "exit" ) | ||||
|                     config.waitForKeypress = WaitForKeypress::BeforeExit; | ||||
|                 else if( keypressLc == "both" ) | ||||
|                     config.waitForKeypress = WaitForKeypress::BeforeStartAndExit; | ||||
|                 else | ||||
|                     return ParserResult::runtimeError( "keypress argument must be one of: start, exit or both. '" + keypress + "' not recognised" ); | ||||
|                     return ParserResult::runtimeError( "keypress argument must be one of: never, start, exit or both. '" + keypress + "' not recognised" ); | ||||
|             return ParserResult::ok( ParseResultType::Matched ); | ||||
|             }; | ||||
|         auto const setVerbosity = [&]( std::string const& verbosity ) { | ||||
| @@ -195,7 +197,7 @@ namespace Catch { | ||||
|             | Opt( config.libIdentify ) | ||||
|                 ["--libidentify"] | ||||
|                 ( "report name and version according to libidentify standard" ) | ||||
|             | Opt( setWaitForKeypress, "start|exit|both" ) | ||||
|             | Opt( setWaitForKeypress, "never|start|exit|both" ) | ||||
|                 ["--wait-for-keypress"] | ||||
|                 ( "waits for a keypress before exiting" ) | ||||
|             | Opt( config.benchmarkSamples, "samples" ) | ||||
|   | ||||
| @@ -1124,6 +1124,16 @@ CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-x", "2"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.abortAfter == 2 for: 2 == 2 | ||||
| CmdLine.tests.cpp:<line number>: passed: !result for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("convert") && Contains("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" ) | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 0 == 0 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 1 == 1 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 2 == 2 | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.waitForKeypress == std::get<1>(input) for: 3 == 3 | ||||
| CmdLine.tests.cpp:<line number>: passed: !result for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: result.errorMessage(), Contains("never") && Contains("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" ) | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "-e"}) for: {?} | ||||
| CmdLine.tests.cpp:<line number>: passed: config.noThrow for: true | ||||
| CmdLine.tests.cpp:<line number>: passed: cli.parse({"test", "--nothrow"}) for: {?} | ||||
|   | ||||
| @@ -1381,5 +1381,5 @@ due to unexpected exception with message: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  329 |  255 passed |  70 failed |  4 failed as expected | ||||
| assertions: 1831 | 1679 passed | 131 failed | 21 failed as expected | ||||
| assertions: 1841 | 1689 passed | 131 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -8072,6 +8072,102 @@ with expansion: | ||||
|   "Unable to convert 'oops' to destination type" ( contains: "convert" and | ||||
|   contains: "oops" ) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   abort | ||||
|   wait-for-keypress | ||||
|   Accepted options | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.waitForKeypress == std::get<1>(input) ) | ||||
| with expansion: | ||||
|   0 == 0 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   abort | ||||
|   wait-for-keypress | ||||
|   Accepted options | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.waitForKeypress == std::get<1>(input) ) | ||||
| with expansion: | ||||
|   1 == 1 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   abort | ||||
|   wait-for-keypress | ||||
|   Accepted options | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.waitForKeypress == std::get<1>(input) ) | ||||
| with expansion: | ||||
|   2 == 2 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   abort | ||||
|   wait-for-keypress | ||||
|   Accepted options | ||||
| ------------------------------------------------------------------------------- | ||||
| CmdLine.tests.cpp:<line number> | ||||
| ............................................................................... | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   CHECK( cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) ) | ||||
| with expansion: | ||||
|   {?} | ||||
|  | ||||
| CmdLine.tests.cpp:<line number>: PASSED: | ||||
|   REQUIRE( config.waitForKeypress == std::get<1>(input) ) | ||||
| with expansion: | ||||
|   3 == 3 | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   abort | ||||
|   wait-for-keypress | ||||
|   invalid options are reported | ||||
| ------------------------------------------------------------------------------- | ||||
| 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("never") && Contains("both") ) | ||||
| with expansion: | ||||
|   "keypress argument must be one of: never, start, exit or both. 'sometimes' | ||||
|   not recognised" ( contains: "never" and contains: "both" ) | ||||
|  | ||||
| ------------------------------------------------------------------------------- | ||||
| Process can be configured on command line | ||||
|   nothrow | ||||
| @@ -14319,5 +14415,5 @@ Misc.tests.cpp:<line number>: PASSED: | ||||
|  | ||||
| =============================================================================== | ||||
| test cases:  329 |  239 passed |  86 failed |  4 failed as expected | ||||
| assertions: 1848 | 1679 passed | 148 failed | 21 failed as expected | ||||
| assertions: 1858 | 1689 passed | 148 failed | 21 failed as expected | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <testsuitesloose text artifact | ||||
| > | ||||
|   <testsuite name="<exe-name>" errors="17" failures="132" tests="1849" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|   <testsuite name="<exe-name>" errors="17" failures="132" tests="1859" hostname="tbd" time="{duration}" timestamp="{iso8601-timestamp}"> | ||||
|     <properties> | ||||
|       <property name="filters" value="~[!nonportable]~[!benchmark]~[approvals] *"/> | ||||
|       <property name="random-seed" value="1"/> | ||||
| @@ -1013,6 +1013,8 @@ Message.tests.cpp:<line number> | ||||
|     <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/-x 2 aborts after two failures" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/-x must be numeric" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/wait-for-keypress/Accepted options" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/abort/wait-for-keypress/invalid options are reported" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/nothrow/-e" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/nothrow/--nothrow" time="{duration}"/> | ||||
|     <testcase classname="<exe-name>.global" name="Process can be configured on command line/output filename/-o filename" time="{duration}"/> | ||||
|   | ||||
| @@ -52,6 +52,8 @@ | ||||
|     <testCase name="Process can be configured on command line/abort/-a aborts after first failure" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/abort/-x 2 aborts after two failures" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/abort/-x must be numeric" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/abort/wait-for-keypress/Accepted options" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/abort/wait-for-keypress/invalid options are reported" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/nothrow/-e" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/nothrow/--nothrow" duration="{duration}"/> | ||||
|     <testCase name="Process can be configured on command line/output filename/-o filename" duration="{duration}"/> | ||||
|   | ||||
| @@ -2171,6 +2171,26 @@ ok {test-number} - !result for: true | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - result.errorMessage(), Contains("convert") && Contains("oops") for: "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" ) | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.waitForKeypress == std::get<1>(input) for: 0 == 0 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.waitForKeypress == std::get<1>(input) for: 1 == 1 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.waitForKeypress == std::get<1>(input) for: 2 == 2 | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "--wait-for-keypress", std::get<0>(input)}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.waitForKeypress == std::get<1>(input) 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(), Contains("never") && Contains("both") for: "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" ) | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - cli.parse({"test", "-e"}) for: {?} | ||||
| # Process can be configured on command line | ||||
| ok {test-number} - config.noThrow for: true | ||||
| @@ -3688,5 +3708,5 @@ ok {test-number} - q3 == 23. for: 23.0 == 23.0 | ||||
| ok {test-number} - | ||||
| # xmlentitycheck | ||||
| ok {test-number} - | ||||
| 1..1840 | ||||
| 1..1850 | ||||
|  | ||||
|   | ||||
| @@ -10092,6 +10092,131 @@ Nor would this | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="abort" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="wait-for-keypress" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Section name="Accepted options" 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", "--wait-for-keypress", std::get<0>(input)}) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 {?} | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 config.waitForKeypress == std::get<1>(input) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 0 == 0 | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|           </Section> | ||||
|           <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="abort" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="wait-for-keypress" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Section name="Accepted options" 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", "--wait-for-keypress", std::get<0>(input)}) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 {?} | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 config.waitForKeypress == std::get<1>(input) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 1 == 1 | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|           </Section> | ||||
|           <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="abort" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="wait-for-keypress" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Section name="Accepted options" 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", "--wait-for-keypress", std::get<0>(input)}) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 {?} | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 config.waitForKeypress == std::get<1>(input) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 2 == 2 | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|           </Section> | ||||
|           <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="abort" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="wait-for-keypress" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Section name="Accepted options" 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", "--wait-for-keypress", std::get<0>(input)}) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 {?} | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <Expression success="true" type="REQUIRE" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 config.waitForKeypress == std::get<1>(input) | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 3 == 3 | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|           </Section> | ||||
|           <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="abort" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="wait-for-keypress" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Section name="invalid options are reported" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|             <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 !result | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 true | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <Expression success="true" type="REQUIRE_THAT" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|               <Original> | ||||
|                 result.errorMessage(), Contains("never") && Contains("both") | ||||
|               </Original> | ||||
|               <Expanded> | ||||
|                 "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" ) | ||||
|               </Expanded> | ||||
|             </Expression> | ||||
|             <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|           </Section> | ||||
|           <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|         </Section> | ||||
|         <OverallResults successes="2" failures="0" expectedFailures="0"/> | ||||
|       </Section> | ||||
|       <Section name="nothrow" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|         <Section name="-e" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
|           <Expression success="true" type="CHECK" filename="tests/<exe-name>/IntrospectiveTests/CmdLine.tests.cpp" > | ||||
| @@ -17158,7 +17283,7 @@ loose text artifact | ||||
|       </Section> | ||||
|       <OverallResult success="true"/> | ||||
|     </TestCase> | ||||
|     <OverallResults successes="1679" failures="149" expectedFailures="21"/> | ||||
|     <OverallResults successes="1689" failures="149" expectedFailures="21"/> | ||||
|   </Group> | ||||
|   <OverallResults successes="1679" failures="148" expectedFailures="21"/> | ||||
|   <OverallResults successes="1689" failures="148" expectedFailures="21"/> | ||||
| </Catch> | ||||
|   | ||||
| @@ -10,6 +10,7 @@ | ||||
| #include <catch2/catch_test_case_info.h> | ||||
| #include <catch2/catch_config.hpp> | ||||
| #include <catch2/catch_commandline.h> | ||||
| #include <catch2/catch_generators.hpp> | ||||
|  | ||||
| #ifdef __clang__ | ||||
| #   pragma clang diagnostic ignored "-Wc++98-compat" | ||||
| @@ -410,7 +411,31 @@ TEST_CASE( "Process can be configured on command line", "[config][command-line]" | ||||
|             CHECK(!result); | ||||
|             REQUIRE_THAT(result.errorMessage(), Contains("convert") && Contains("oops")); | ||||
|         } | ||||
|  | ||||
|      SECTION("wait-for-keypress") { | ||||
|         SECTION("Accepted options") { | ||||
|             using tuple_type = std::tuple<char const*, Catch::WaitForKeypress::When>; | ||||
|             auto input = GENERATE(table<char const*, Catch::WaitForKeypress::When>({ | ||||
|                 tuple_type{"never", Catch::WaitForKeypress::Never}, | ||||
|                 tuple_type{"start", Catch::WaitForKeypress::BeforeStart}, | ||||
|                 tuple_type{"exit",  Catch::WaitForKeypress::BeforeExit}, | ||||
|                 tuple_type{"both",  Catch::WaitForKeypress::BeforeStartAndExit}, | ||||
|             })); | ||||
|             CHECK(cli.parse({"test", "--wait-for-keypress", std::get<0>(input)})); | ||||
|  | ||||
|             REQUIRE(config.waitForKeypress == std::get<1>(input)); | ||||
|         } | ||||
|  | ||||
|         SECTION("invalid options are reported") { | ||||
|             auto result = cli.parse({"test", "--wait-for-keypress", "sometimes"}); | ||||
|             CHECK(!result); | ||||
|  | ||||
| #ifndef CATCH_CONFIG_DISABLE_MATCHERS | ||||
|             REQUIRE_THAT(result.errorMessage(), Contains("never") && Contains("both")); | ||||
| #endif | ||||
|         } | ||||
|     } | ||||
|    } | ||||
|  | ||||
|     SECTION("nothrow") { | ||||
|         SECTION("-e") { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user