mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-29 16:53:30 +01:00
Improved error handling for --abort as per #108
This commit is contained in:
parent
6f220863cf
commit
b084562b3b
@ -162,6 +162,8 @@ namespace Catch {
|
|||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << cmd[0];
|
ss << cmd[0];
|
||||||
ss >> threshold;
|
ss >> threshold;
|
||||||
|
if( ss.fail() || threshold <= 0 )
|
||||||
|
cmd.raiseError( "threshold must be a number greater than zero" );
|
||||||
}
|
}
|
||||||
config.cutoff = threshold;
|
config.cutoff = threshold;
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,7 @@ template<size_t size>
|
|||||||
std::string parseIntoConfigAndReturnError( const char * (&argv)[size], Catch::ConfigData& config ) {
|
std::string parseIntoConfigAndReturnError( const char * (&argv)[size], Catch::ConfigData& config ) {
|
||||||
try {
|
try {
|
||||||
Catch::parseIntoConfig( Catch::CommandParser( size, argv ), config );
|
Catch::parseIntoConfig( Catch::CommandParser( size, argv ), config );
|
||||||
|
FAIL( "expected exception" );
|
||||||
}
|
}
|
||||||
catch( std::exception& ex ) {
|
catch( std::exception& ex ) {
|
||||||
return ex.what();
|
return ex.what();
|
||||||
@ -179,7 +180,15 @@ TEST_CASE( "selftest/parser/2", "ConfigData" ) {
|
|||||||
|
|
||||||
REQUIRE( config.cutoff == 2 );
|
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" };
|
const char* argv[] = { "test", "-a", "1", "2" };
|
||||||
REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "accepts" ) );
|
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
|
* This file has been merged from multiple headers. Please don't edit it directly
|
||||||
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
@ -3650,6 +3650,8 @@ namespace Catch {
|
|||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << cmd[0];
|
ss << cmd[0];
|
||||||
ss >> threshold;
|
ss >> threshold;
|
||||||
|
if( ss.fail() || threshold <= 0 )
|
||||||
|
cmd.raiseError( "threshold must be a number greater than zero" );
|
||||||
}
|
}
|
||||||
config.cutoff = threshold;
|
config.cutoff = threshold;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user