mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Implemented wait-for-keypress option
This commit is contained in:
		| @@ -76,6 +76,19 @@ namespace Catch { | ||||
|         else | ||||
|             throw std::runtime_error( "colour mode must be one of: auto, yes or no" ); | ||||
|     } | ||||
|     inline void setWaitForKeypress( ConfigData& config, std::string const& keypress ) { | ||||
|         auto keypressLc = toLower( keypress ); | ||||
|         if( keypressLc == "start" ) | ||||
|             config.waitForKeypress = WaitForKeypress::BeforeStart; | ||||
|         else if( keypressLc == "exit" ) | ||||
|             config.waitForKeypress = WaitForKeypress::BeforeExit; | ||||
|         else if( keypressLc == "both" ) | ||||
|             config.waitForKeypress = WaitForKeypress::BeforeStartAndExit; | ||||
|         else | ||||
|             throw std::runtime_error( "keypress argument must be one of: start, exit or both. '" + keypress + "' not recognised" ); | ||||
|     }; | ||||
|  | ||||
|  | ||||
|     inline void forceColour( ConfigData& config ) { | ||||
|         config.useColour = UseColour::Yes; | ||||
|     } | ||||
| @@ -219,6 +232,10 @@ namespace Catch { | ||||
|             .describe( "report name and version according to libidentify standard" ) | ||||
|             .bind( &ConfigData::libIdentify ); | ||||
|  | ||||
|         cli["--wait-for-keypress"] | ||||
|                 .describe( "waits for a keypress before exiting" ) | ||||
|                 .bind( &setWaitForKeypress, "start|exit|both" ); | ||||
|  | ||||
|         return cli; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -45,7 +45,8 @@ namespace Catch { | ||||
|             warnings( WarnAbout::Nothing ), | ||||
|             showDurations( ShowDurations::DefaultForReporter ), | ||||
|             runOrder( RunTests::InDeclarationOrder ), | ||||
|             useColour( UseColour::Auto ) | ||||
|             useColour( UseColour::Auto ), | ||||
|             waitForKeypress( WaitForKeypress::Never ) | ||||
|         {} | ||||
|  | ||||
|         bool listTests; | ||||
| @@ -70,6 +71,7 @@ namespace Catch { | ||||
|         ShowDurations::OrNot showDurations; | ||||
|         RunTests::InWhatOrder runOrder; | ||||
|         UseColour::YesOrNo useColour; | ||||
|         WaitForKeypress::When waitForKeypress; | ||||
|  | ||||
|         std::string outputFilename; | ||||
|         std::string name; | ||||
|   | ||||
| @@ -42,6 +42,12 @@ namespace Catch { | ||||
|         Yes, | ||||
|         No | ||||
|     }; }; | ||||
|     struct WaitForKeypress { enum When { | ||||
|         Never, | ||||
|         BeforeStart = 1, | ||||
|         BeforeExit = 2, | ||||
|         BeforeStartAndExit = BeforeStart | BeforeExit | ||||
|     }; }; | ||||
|  | ||||
|     class TestSpec; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash