mirror of https://github.com/catchorg/Catch2.git
Improved error handling for --abort as per #108
This commit is contained in:
parent
6f220863cf
commit
b084562b3b
|
@ -153,7 +153,7 @@ namespace Catch {
|
|||
cmd.raiseError( "Expected a name" );
|
||||
config.name = cmd[0];
|
||||
}
|
||||
|
||||
|
||||
if( Command cmd = parser.find( "-a", "--abort" ) ) {
|
||||
if( cmd.argsCount() > 1 )
|
||||
cmd.raiseError( "Only accepts 0-1 arguments" );
|
||||
|
@ -162,6 +162,8 @@ namespace Catch {
|
|||
std::stringstream ss;
|
||||
ss << cmd[0];
|
||||
ss >> threshold;
|
||||
if( ss.fail() || threshold <= 0 )
|
||||
cmd.raiseError( "threshold must be a number greater than zero" );
|
||||
}
|
||||
config.cutoff = threshold;
|
||||
}
|
||||
|
|
|
@ -68,6 +68,7 @@ template<size_t size>
|
|||
std::string parseIntoConfigAndReturnError( const char * (&argv)[size], Catch::ConfigData& config ) {
|
||||
try {
|
||||
Catch::parseIntoConfig( Catch::CommandParser( size, argv ), config );
|
||||
FAIL( "expected exception" );
|
||||
}
|
||||
catch( std::exception& ex ) {
|
||||
return ex.what();
|
||||
|
@ -179,7 +180,15 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) {
|
|||
|
||||
REQUIRE( config.cutoff == 2 );
|
||||
}
|
||||
SECTION( "-a/error", "cutoff only takes one argument" ) {
|
||||
SECTION( "-a/error/0", "" ) {
|
||||
const char* argv[] = { "test", "-a", "0" };
|
||||
REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) );
|
||||
}
|
||||
SECTION( "-a/error/non numeric", "" ) {
|
||||
const char* argv[] = { "test", "-a", "oops" };
|
||||
REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) );
|
||||
}
|
||||
SECTION( "-a/error/two args", "cutoff only takes one argument" ) {
|
||||
const char* argv[] = { "test", "-a", "1", "2" };
|
||||
REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "accepts" ) );
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Generated: 2012-07-23 08:24:23.434402
|
||||
* Generated: 2012-07-28 20:22:25.519628
|
||||
* ----------------------------------------------------------
|
||||
* This file has been merged from multiple headers. Please don't edit it directly
|
||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||
|
@ -3650,6 +3650,8 @@ namespace Catch {
|
|||
std::stringstream ss;
|
||||
ss << cmd[0];
|
||||
ss >> threshold;
|
||||
if( ss.fail() || threshold <= 0 )
|
||||
cmd.raiseError( "threshold must be a number greater than zero" );
|
||||
}
|
||||
config.cutoff = threshold;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue