Regen single include

This commit is contained in:
Phil Nash 2012-06-05 20:51:05 +01:00
parent 46a3476731
commit e463687725
1 changed files with 70 additions and 27 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Generated: 2012-06-05 20:16:42.543387 * Generated: 2012-06-05 20:50:55.068066
* ---------------------------------------------------------- * ----------------------------------------------------------
* 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.
@ -311,6 +311,18 @@ namespace Catch
} }
} }
// #included from: catch_interfaces_config.h
namespace Catch {
struct IConfig {
virtual ~IConfig(){}
virtual bool allowThrows() const = 0;
};
}
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <stdlib.h> #include <stdlib.h>
@ -337,12 +349,14 @@ namespace Catch {
virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0; virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
virtual size_t getGeneratorIndex( const std::string& fileInfo, size_t totalSize ) = 0; virtual size_t getGeneratorIndex( const std::string& fileInfo, size_t totalSize ) = 0;
virtual bool advanceGeneratorsForCurrentTest() = 0; virtual bool advanceGeneratorsForCurrentTest() = 0;
virtual const IConfig* getConfig() const = 0;
}; };
struct IMutableContext : IContext struct IMutableContext : IContext
{ {
virtual void setResultCapture( IResultCapture* resultCapture ) = 0; virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
virtual void setRunner( IRunner* runner ) = 0; virtual void setRunner( IRunner* runner ) = 0;
virtual void setConfig( const IConfig* config ) = 0;
}; };
IContext& getCurrentContext(); IContext& getCurrentContext();
@ -362,10 +376,12 @@ namespace Catch {
virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry(); virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry();
virtual size_t getGeneratorIndex( const std::string& fileInfo, size_t totalSize ); virtual size_t getGeneratorIndex( const std::string& fileInfo, size_t totalSize );
virtual bool advanceGeneratorsForCurrentTest(); virtual bool advanceGeneratorsForCurrentTest();
virtual const IConfig* getConfig() const;
public: // IMutableContext public: // IMutableContext
virtual void setResultCapture( IResultCapture* resultCapture ); virtual void setResultCapture( IResultCapture* resultCapture );
virtual void setRunner( IRunner* runner ); virtual void setRunner( IRunner* runner );
virtual void setConfig( const IConfig* config );
public: // Statics public: // Statics
static std::streambuf* createStreamBuf( const std::string& streamName ); static std::streambuf* createStreamBuf( const std::string& streamName );
@ -383,6 +399,7 @@ namespace Catch {
std::auto_ptr<IExceptionTranslatorRegistry> m_exceptionTranslatorRegistry; std::auto_ptr<IExceptionTranslatorRegistry> m_exceptionTranslatorRegistry;
IRunner* m_runner; IRunner* m_runner;
IResultCapture* m_resultCapture; IResultCapture* m_resultCapture;
const IConfig* m_config;
std::map<std::string, GeneratorsForTest*> m_generatorsByTestName; std::map<std::string, GeneratorsForTest*> m_generatorsByTestName;
}; };
} }
@ -1350,8 +1367,7 @@ inline bool isTrue( bool value ){ return value; }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_ACCEPT_EXPR( expr, stopOnFailure, originalExpr ) \ #define INTERNAL_CATCH_ACCEPT_EXPR( expr, stopOnFailure, originalExpr ) \
if( Catch::ResultAction::Value internal_catch_action = Catch::getCurrentContext().getResultCapture().acceptExpression( expr ) ) \ if( Catch::ResultAction::Value internal_catch_action = Catch::getCurrentContext().getResultCapture().acceptExpression( expr ) ) { \
{ \
if( internal_catch_action & Catch::ResultAction::Debug ) BreakIntoDebugger(); \ if( internal_catch_action & Catch::ResultAction::Debug ) BreakIntoDebugger(); \
if( internal_catch_action & Catch::ResultAction::Abort ) throw Catch::TestFailureException(); \ if( internal_catch_action & Catch::ResultAction::Abort ) throw Catch::TestFailureException(); \
if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \ if( Catch::isTrue( stopOnFailure ) ) throw Catch::TestFailureException(); \
@ -1360,14 +1376,14 @@ inline bool isTrue( bool value ){ return value; }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_TEST( expr, isNot, stopOnFailure, macroName ) \ #define INTERNAL_CATCH_TEST( expr, isNot, stopOnFailure, macroName ) \
do{ try{ \ do { try { \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr, isNot )->*expr ), stopOnFailure, expr ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr, isNot )->*expr ), stopOnFailure, expr ); \
}catch( Catch::TestFailureException& ){ \ } catch( Catch::TestFailureException& ) { \
throw; \ throw; \
} catch( ... ){ \ } catch( ... ) { \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, expr ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, expr ); \
throw; \ throw; \
}}while( Catch::isTrue( false ) ) } } while( Catch::isTrue( false ) )
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_IF( expr, isNot, stopOnFailure, macroName ) \ #define INTERNAL_CATCH_IF( expr, isNot, stopOnFailure, macroName ) \
@ -1381,37 +1397,33 @@ inline bool isTrue( bool value ){ return value; }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_NO_THROW( expr, stopOnFailure, macroName ) \ #define INTERNAL_CATCH_NO_THROW( expr, stopOnFailure, macroName ) \
try \ try { \
{ \
expr; \ expr; \
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
} \ } \
catch( ... ) \ catch( ... ) { \
{ \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \ #define INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
try \ try { \
{ \ if( Catch::getCurrentContext().getConfig()->allowThrows() ) { \
expr; \ expr; \
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::DidntThrowException ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::DidntThrowException ), stopOnFailure, false ); \
} \
} \ } \
catch( Catch::TestFailureException& ) \ catch( Catch::TestFailureException& ) { \
{ \
throw; \ throw; \
} \ } \
catch( exceptionType ) \ catch( exceptionType ) { \
{ \
INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ).setResultType( Catch::ResultWas::Ok ), stopOnFailure, false ); \
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, stopOnFailure, macroName ) \ #define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, stopOnFailure, macroName ) \
INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \ INTERNAL_CATCH_THROWS( expr, exceptionType, stopOnFailure, macroName ) \
catch( ... ) \ catch( ... ) { \
{ \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #expr ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
} }
@ -1426,11 +1438,11 @@ inline bool isTrue( bool value ){ return value; }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \ #define INTERNAL_CHECK_THAT( arg, matcher, stopOnFailure, macroName ) \
do{ try{ \ do { try { \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher, false ).acceptMatcher( ::Catch::Matchers::matcher, arg, #matcher ) ), stopOnFailure, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher, false ).acceptMatcher( ::Catch::Matchers::matcher, arg, #matcher ) ), stopOnFailure, false ); \
}catch( Catch::TestFailureException& ){ \ } catch( Catch::TestFailureException& ) { \
throw; \ throw; \
} catch( ... ){ \ } catch( ... ) { \
INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, false ); \ INTERNAL_CATCH_ACCEPT_EXPR( ( Catch::ExpressionBuilder( CATCH_INTERNAL_LINEINFO, macroName, #arg " " #matcher ) << Catch::getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, false ); \
throw; \ throw; \
}}while( Catch::isTrue( false ) ) }}while( Catch::isTrue( false ) )
@ -2394,7 +2406,7 @@ namespace Catch {
AsMask = 0xf0 AsMask = 0xf0
}; }; }; };
class Config : public IReporterConfig { class Config : public IReporterConfig, public IConfig {
private: private:
Config( const Config& other ); Config( const Config& other );
Config& operator = ( const Config& other ); Config& operator = ( const Config& other );
@ -2407,7 +2419,8 @@ namespace Catch {
m_streambuf( NULL ), m_streambuf( NULL ),
m_os( std::cout.rdbuf() ), m_os( std::cout.rdbuf() ),
m_includeWhichResults( Include::FailedOnly ), m_includeWhichResults( Include::FailedOnly ),
m_cutoff( -1 ) m_cutoff( -1 ),
m_allowThrows( true )
{} {}
~Config() { ~Config() {
@ -2530,6 +2543,14 @@ namespace Catch {
m_cutoff = cutoff; m_cutoff = cutoff;
} }
void setAllowThrows( bool allowThrows ) {
m_allowThrows = allowThrows;
}
virtual bool allowThrows() const {
return m_allowThrows;
}
private: private:
Ptr<IReporter> m_reporter; Ptr<IReporter> m_reporter;
std::string m_filename; std::string m_filename;
@ -2543,6 +2564,7 @@ namespace Catch {
Include::WhichResults m_includeWhichResults; Include::WhichResults m_includeWhichResults;
std::string m_name; std::string m_name;
int m_cutoff; int m_cutoff;
bool m_allowThrows;
}; };
struct NewConfig { struct NewConfig {
@ -2787,6 +2809,7 @@ namespace Catch {
m_prevResultCapture( &m_context.getResultCapture() ) m_prevResultCapture( &m_context.getResultCapture() )
{ {
m_context.setRunner( this ); m_context.setRunner( this );
m_context.setConfig( &m_config );
m_context.setResultCapture( this ); m_context.setResultCapture( this );
m_reporter->StartTesting(); m_reporter->StartTesting();
} }
@ -2794,6 +2817,7 @@ namespace Catch {
~Runner() { ~Runner() {
m_reporter->EndTesting( m_totals ); m_reporter->EndTesting( m_totals );
m_context.setRunner( m_prevRunner ); m_context.setRunner( m_prevRunner );
m_context.setConfig( NULL );
m_context.setResultCapture( m_prevResultCapture ); m_context.setResultCapture( m_prevResultCapture );
} }
@ -2862,6 +2886,10 @@ namespace Catch {
return m_totals; return m_totals;
} }
const Config& config() const {
return m_config;
}
private: // IResultCapture private: // IResultCapture
virtual ResultAction::Value acceptResult( bool result ) { virtual ResultAction::Value acceptResult( bool result ) {
@ -3372,7 +3400,8 @@ namespace Catch {
Context::Context() Context::Context()
: m_reporterRegistry( new ReporterRegistry ), : m_reporterRegistry( new ReporterRegistry ),
m_testCaseRegistry( new TestRegistry ), m_testCaseRegistry( new TestRegistry ),
m_exceptionTranslatorRegistry( new ExceptionTranslatorRegistry ) m_exceptionTranslatorRegistry( new ExceptionTranslatorRegistry ),
m_config( NULL )
{} {}
void Context::cleanUp() { void Context::cleanUp() {
@ -3388,6 +3417,13 @@ namespace Catch {
m_resultCapture = resultCapture; m_resultCapture = resultCapture;
} }
const IConfig* Context::getConfig() const {
return m_config;
}
void Context::setConfig( const IConfig* config ) {
m_config = config;
}
IResultCapture& Context::getResultCapture() { IResultCapture& Context::getResultCapture() {
return *m_resultCapture; return *m_resultCapture;
} }
@ -3612,6 +3648,13 @@ namespace Catch {
} }
config.setCutoff( threshold ); config.setCutoff( threshold );
} }
if( Command cmd = parser.find( "-nt", "--nothrow" ) ) {
if( cmd.argsCount() != 0 )
cmd.raiseError( "Does not accept arguments" );
config.setAllowThrows( false );
}
} }
catch( std::exception& ex ) { catch( std::exception& ex ) {
config.setError( ex.what() ); config.setError( ex.what() );