mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-04 05:09:53 +01:00
First cut of StaticRegistries - separate from Context
This commit is contained in:
parent
5234b15ff4
commit
1091ca81e6
@ -9,6 +9,7 @@
|
|||||||
#ifndef TWOBLUECUBES_CATCH_HPP_INCLUDED
|
#ifndef TWOBLUECUBES_CATCH_HPP_INCLUDED
|
||||||
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "internal/catch_notimplemented_exception.h"
|
||||||
#include "internal/catch_context.h"
|
#include "internal/catch_context.h"
|
||||||
#include "internal/catch_test_registry.hpp"
|
#include "internal/catch_test_registry.hpp"
|
||||||
#include "internal/catch_capture.hpp"
|
#include "internal/catch_capture.hpp"
|
||||||
@ -29,6 +30,7 @@
|
|||||||
|
|
||||||
#if defined( CATCH_CONFIG_MAIN ) || defined( CATCH_CONFIG_RUNNER )
|
#if defined( CATCH_CONFIG_MAIN ) || defined( CATCH_CONFIG_RUNNER )
|
||||||
#include "catch_runner.hpp"
|
#include "catch_runner.hpp"
|
||||||
|
#include "internal/catch_impl.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CATCH_CONFIG_MAIN
|
#ifdef CATCH_CONFIG_MAIN
|
||||||
|
@ -34,7 +34,7 @@ namespace Catch {
|
|||||||
|
|
||||||
ReporterConfig reporterConfig( config.getName(), config.stream(), config.includeSuccessfulResults() );
|
ReporterConfig reporterConfig( config.getName(), config.stream(), config.includeSuccessfulResults() );
|
||||||
|
|
||||||
Ptr<IReporter> reporter = getCurrentContext().getReporterRegistry().create( reporterName, reporterConfig );
|
Ptr<IReporter> reporter = getStatics().getReporterRegistry().create( reporterName, reporterConfig );
|
||||||
|
|
||||||
if( !reporter )
|
if( !reporter )
|
||||||
{
|
{
|
||||||
@ -87,7 +87,7 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
result = static_cast<int>( runner.getTotals().assertions.failed );
|
result = static_cast<int>( runner.getTotals().assertions.failed );
|
||||||
}
|
}
|
||||||
Catch::Context::cleanUp();
|
Catch::cleanUp();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,7 +124,7 @@ namespace Catch {
|
|||||||
cmd.raiseError( "Does not accept arguments" );
|
cmd.raiseError( "Does not accept arguments" );
|
||||||
|
|
||||||
showHelp( argv[0] );
|
showHelp( argv[0] );
|
||||||
Catch::Context::cleanUp();
|
Catch::cleanUp();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ namespace Catch {
|
|||||||
catch( std::exception& ex ) {
|
catch( std::exception& ex ) {
|
||||||
std::cerr << ex.what() << "\n\nUsage: ...\n\n";
|
std::cerr << ex.what() << "\n\nUsage: ...\n\n";
|
||||||
showUsage( std::cerr );
|
showUsage( std::cerr );
|
||||||
Catch::Context::cleanUp();
|
Catch::cleanUp();
|
||||||
return (std::numeric_limits<int>::max)();
|
return (std::numeric_limits<int>::max)();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,30 +19,6 @@ namespace Catch {
|
|||||||
|
|
||||||
struct TestFailureException{};
|
struct TestFailureException{};
|
||||||
|
|
||||||
class NotImplementedException : public std::exception
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
NotImplementedException( const SourceLineInfo& lineInfo )
|
|
||||||
: m_lineInfo( lineInfo ) {
|
|
||||||
std::ostringstream oss;
|
|
||||||
oss << lineInfo << "function ";
|
|
||||||
if( !lineInfo.function.empty() )
|
|
||||||
oss << lineInfo.function << " ";
|
|
||||||
oss << "not implemented";
|
|
||||||
m_what = oss.str();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~NotImplementedException() throw() {}
|
|
||||||
|
|
||||||
virtual const char* what() const throw() {
|
|
||||||
return m_what.c_str();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::string m_what;
|
|
||||||
SourceLineInfo m_lineInfo;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ScopedInfo {
|
class ScopedInfo {
|
||||||
public:
|
public:
|
||||||
ScopedInfo() : m_oss() {
|
ScopedInfo() : m_oss() {
|
||||||
@ -88,7 +64,7 @@ inline bool isTrue( bool value ){ return value; }
|
|||||||
} 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::getStatics().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, expr ); \
|
||||||
throw; \
|
throw; \
|
||||||
} } while( Catch::isTrue( false ) )
|
} } while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
@ -109,7 +85,7 @@ inline bool isTrue( bool value ){ return value; }
|
|||||||
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::getStatics().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -131,7 +107,7 @@ inline bool isTrue( bool value ){ return value; }
|
|||||||
#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::getStatics().getExceptionTranslatorRegistry() ).setResultType( Catch::ResultWas::ThrewException ), stopOnFailure, false ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -150,11 +126,8 @@ inline bool isTrue( bool value ){ return value; }
|
|||||||
} 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::getStatics().getExceptionTranslatorRegistry().translateActiveException() ).setResultType( Catch::ResultWas::ThrewException ), false, false ); \
|
||||||
throw; \
|
throw; \
|
||||||
}}while( Catch::isTrue( false ) )
|
}}while( Catch::isTrue( false ) )
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
|
|
||||||
|
|
||||||
#endif // TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
#endif // TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
|
||||||
|
@ -19,9 +19,7 @@ namespace Catch {
|
|||||||
|
|
||||||
class TestCaseInfo;
|
class TestCaseInfo;
|
||||||
struct IResultCapture;
|
struct IResultCapture;
|
||||||
struct ITestCaseRegistry;
|
|
||||||
struct IRunner;
|
struct IRunner;
|
||||||
struct IExceptionTranslatorRegistry;
|
|
||||||
class GeneratorsForTest;
|
class GeneratorsForTest;
|
||||||
|
|
||||||
class StreamBufBase : public std::streambuf{};
|
class StreamBufBase : public std::streambuf{};
|
||||||
@ -32,9 +30,6 @@ namespace Catch {
|
|||||||
|
|
||||||
virtual IResultCapture& getResultCapture() = 0;
|
virtual IResultCapture& getResultCapture() = 0;
|
||||||
virtual IRunner& getRunner() = 0;
|
virtual IRunner& getRunner() = 0;
|
||||||
virtual IReporterRegistry& getReporterRegistry() = 0;
|
|
||||||
virtual ITestCaseRegistry& getTestCaseRegistry() = 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;
|
virtual const IConfig* getConfig() const = 0;
|
||||||
@ -59,9 +54,6 @@ namespace Catch {
|
|||||||
public: // IContext
|
public: // IContext
|
||||||
virtual IResultCapture& getResultCapture();
|
virtual IResultCapture& getResultCapture();
|
||||||
virtual IRunner& getRunner();
|
virtual IRunner& getRunner();
|
||||||
virtual IReporterRegistry& getReporterRegistry();
|
|
||||||
virtual ITestCaseRegistry& getTestCaseRegistry();
|
|
||||||
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;
|
virtual const IConfig* getConfig() const;
|
||||||
@ -82,9 +74,6 @@ namespace Catch {
|
|||||||
GeneratorsForTest& getGeneratorsForCurrentTest();
|
GeneratorsForTest& getGeneratorsForCurrentTest();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::auto_ptr<IReporterRegistry> m_reporterRegistry;
|
|
||||||
std::auto_ptr<ITestCaseRegistry> m_testCaseRegistry;
|
|
||||||
std::auto_ptr<IExceptionTranslatorRegistry> m_exceptionTranslatorRegistry;
|
|
||||||
IRunner* m_runner;
|
IRunner* m_runner;
|
||||||
IResultCapture* m_resultCapture;
|
IResultCapture* m_resultCapture;
|
||||||
const IConfig* m_config;
|
const IConfig* m_config;
|
||||||
|
@ -5,14 +5,11 @@
|
|||||||
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
*/
|
*/
|
||||||
#include "catch_test_case_registry_impl.hpp"
|
|
||||||
#include "catch_runner_impl.hpp"
|
#include "catch_runner_impl.hpp"
|
||||||
#include "catch_generators_impl.hpp"
|
#include "catch_generators_impl.hpp"
|
||||||
#include "catch_console_colour_impl.hpp"
|
#include "catch_console_colour_impl.hpp"
|
||||||
|
|
||||||
#include "catch_exception_translator_registry.hpp"
|
|
||||||
#include "catch_context.h"
|
#include "catch_context.h"
|
||||||
#include "catch_reporter_registry.hpp"
|
|
||||||
#include "catch_stream.hpp"
|
#include "catch_stream.hpp"
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
@ -30,10 +27,7 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Context::Context()
|
Context::Context()
|
||||||
: m_reporterRegistry( new ReporterRegistry ),
|
: m_config( NULL )
|
||||||
m_testCaseRegistry( new TestRegistry ),
|
|
||||||
m_exceptionTranslatorRegistry( new ExceptionTranslatorRegistry ),
|
|
||||||
m_config( NULL )
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void Context::cleanUp() {
|
void Context::cleanUp() {
|
||||||
@ -64,18 +58,6 @@ namespace Catch {
|
|||||||
return *m_runner;
|
return *m_runner;
|
||||||
}
|
}
|
||||||
|
|
||||||
IReporterRegistry& Context::getReporterRegistry() {
|
|
||||||
return *m_reporterRegistry.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
ITestCaseRegistry& Context::getTestCaseRegistry() {
|
|
||||||
return *m_testCaseRegistry.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
IExceptionTranslatorRegistry& Context::getExceptionTranslatorRegistry() {
|
|
||||||
return *m_exceptionTranslatorRegistry.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::streambuf* Context::createStreamBuf( const std::string& streamName ) {
|
std::streambuf* Context::createStreamBuf( const std::string& streamName ) {
|
||||||
if( streamName == "stdout" ) return std::cout.rdbuf();
|
if( streamName == "stdout" ) return std::cout.rdbuf();
|
||||||
if( streamName == "stderr" ) return std::cerr.rdbuf();
|
if( streamName == "stderr" ) return std::cerr.rdbuf();
|
||||||
|
@ -17,12 +17,12 @@
|
|||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
|
class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
|
||||||
|
public:
|
||||||
~ExceptionTranslatorRegistry() {
|
~ExceptionTranslatorRegistry() {
|
||||||
deleteAll( m_translators );
|
deleteAll( m_translators );
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void registerTranslator( IExceptionTranslator* translator ) {
|
virtual void registerTranslator( const IExceptionTranslator* translator ) {
|
||||||
m_translators.push_back( translator );
|
m_translators.push_back( translator );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string tryTranslators( std::vector<IExceptionTranslator*>::const_iterator it ) const {
|
std::string tryTranslators( std::vector<const IExceptionTranslator*>::const_iterator it ) const {
|
||||||
if( it == m_translators.end() )
|
if( it == m_translators.end() )
|
||||||
return "Unknown exception";
|
return "Unknown exception";
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<IExceptionTranslator*> m_translators;
|
std::vector<const IExceptionTranslator*> m_translators;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
//
|
/*
|
||||||
// catch_impl.hpp
|
* Created by Phil on 5/8/2012.
|
||||||
// CatchSelfTest
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
//
|
*
|
||||||
// Created by Phil Nash on 05/08/2012.
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
//
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
*/
|
||||||
|
|
||||||
#ifndef CatchSelfTest_catch_impl_hpp
|
#include "catch_static_registries_impl.hpp"
|
||||||
#define CatchSelfTest_catch_impl_hpp
|
#include "catch_notimplemented_exception.hpp"
|
||||||
|
// !TBD... migrate all impl headers here
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTIONS_H_INCLUDED
|
#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTIONS_H_INCLUDED
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "catch_interfaces_static_registries.h"
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
@ -22,7 +23,6 @@ namespace Catch {
|
|||||||
struct IExceptionTranslatorRegistry {
|
struct IExceptionTranslatorRegistry {
|
||||||
virtual ~IExceptionTranslatorRegistry(){}
|
virtual ~IExceptionTranslatorRegistry(){}
|
||||||
|
|
||||||
virtual void registerTranslator( IExceptionTranslator* translator ) = 0;
|
|
||||||
virtual std::string translateActiveException() const = 0;
|
virtual std::string translateActiveException() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ namespace Catch {
|
|||||||
public:
|
public:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
|
ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
|
||||||
getCurrentContext().getExceptionTranslatorRegistry().registerTranslator
|
getStaticRegistries().registerTranslator
|
||||||
( new ExceptionTranslator<T>( translateFunction ) );
|
( new ExceptionTranslator<T>( translateFunction ) );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -62,7 +62,6 @@ namespace Catch
|
|||||||
|
|
||||||
virtual ~IReporterRegistry() {}
|
virtual ~IReporterRegistry() {}
|
||||||
virtual IReporter* create( const std::string& name, const ReporterConfig& config ) const = 0;
|
virtual IReporter* create( const std::string& name, const ReporterConfig& config ) const = 0;
|
||||||
virtual void registerReporter( const std::string& name, IReporterFactory* factory ) = 0;
|
|
||||||
virtual const FactoryMap& getFactories() const = 0;
|
virtual const FactoryMap& getFactories() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,14 +1,46 @@
|
|||||||
//
|
/*
|
||||||
// catch_static_registries.h
|
* Created by Phil on 5/8/2012.
|
||||||
// CatchSelfTest
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
//
|
*
|
||||||
// Created by Phil Nash on 05/08/2012.
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
//
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_STATIC_REGISTRIES_H_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_STATIC_REGISTRIES_H_INCLUDED
|
||||||
|
|
||||||
#ifndef CatchSelfTest_catch_static_registries_h
|
#include "catch_interfaces_reporter.h"
|
||||||
#define CatchSelfTest_catch_static_registries_h
|
#include "catch_interfaces_config.h"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <vector>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
#endif
|
class TestCaseInfo;
|
||||||
|
struct IResultCapture;
|
||||||
|
struct ITestCaseRegistry;
|
||||||
|
struct IExceptionTranslatorRegistry;
|
||||||
|
struct IExceptionTranslator;
|
||||||
|
|
||||||
|
struct IStatics {
|
||||||
|
virtual ~IStatics(){}
|
||||||
|
|
||||||
|
virtual const IReporterRegistry& getReporterRegistry() const = 0;
|
||||||
|
virtual const ITestCaseRegistry& getTestCaseRegistry() const = 0;
|
||||||
|
virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct IStaticRegistries {
|
||||||
|
virtual ~IStaticRegistries(){}
|
||||||
|
virtual void registerReporter( const std::string& name, IReporterFactory* factory ) = 0;
|
||||||
|
virtual void registerTest( const TestCaseInfo& testInfo ) = 0;
|
||||||
|
virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
IStatics& getStatics();
|
||||||
|
IStaticRegistries& getStaticRegistries();
|
||||||
|
void cleanUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_STATIC_REGISTRIES_H_INCLUDED
|
||||||
|
@ -23,9 +23,8 @@ namespace Catch {
|
|||||||
|
|
||||||
struct ITestCaseRegistry {
|
struct ITestCaseRegistry {
|
||||||
virtual ~ITestCaseRegistry(){}
|
virtual ~ITestCaseRegistry(){}
|
||||||
virtual void registerTest( const TestCaseInfo& testInfo ) = 0;
|
|
||||||
virtual const std::vector<TestCaseInfo>& getAllTests() const = 0;
|
virtual const std::vector<TestCaseInfo>& getAllTests() const = 0;
|
||||||
virtual std::vector<TestCaseInfo> getMatchingTestCases( const std::string& rawTestSpec ) = 0;
|
virtual std::vector<TestCaseInfo> getMatchingTestCases( const std::string& rawTestSpec ) const = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,11 +14,10 @@
|
|||||||
namespace Catch {
|
namespace Catch {
|
||||||
inline int List( Config& config ) {
|
inline int List( Config& config ) {
|
||||||
|
|
||||||
IContext& context = getCurrentContext();
|
|
||||||
if( config.listWhat() & List::Reports ) {
|
if( config.listWhat() & List::Reports ) {
|
||||||
std::cout << "Available reports:\n";
|
std::cout << "Available reports:\n";
|
||||||
IReporterRegistry::FactoryMap::const_iterator it = context.getReporterRegistry().getFactories().begin();
|
IReporterRegistry::FactoryMap::const_iterator it = getStatics().getReporterRegistry().getFactories().begin();
|
||||||
IReporterRegistry::FactoryMap::const_iterator itEnd = context.getReporterRegistry().getFactories().end();
|
IReporterRegistry::FactoryMap::const_iterator itEnd = getStatics().getReporterRegistry().getFactories().end();
|
||||||
for(; it != itEnd; ++it ) {
|
for(; it != itEnd; ++it ) {
|
||||||
// !TBD: consider listAs()
|
// !TBD: consider listAs()
|
||||||
std::cout << "\t" << it->first << "\n\t\t'" << it->second->getDescription() << "'\n";
|
std::cout << "\t" << it->first << "\n\t\t'" << it->second->getDescription() << "'\n";
|
||||||
@ -28,8 +27,8 @@ namespace Catch {
|
|||||||
|
|
||||||
if( config.listWhat() & List::Tests ) {
|
if( config.listWhat() & List::Tests ) {
|
||||||
std::cout << "Available tests:\n";
|
std::cout << "Available tests:\n";
|
||||||
std::vector<TestCaseInfo>::const_iterator it = context.getTestCaseRegistry().getAllTests().begin();
|
std::vector<TestCaseInfo>::const_iterator it = getStatics().getTestCaseRegistry().getAllTests().begin();
|
||||||
std::vector<TestCaseInfo>::const_iterator itEnd = context.getTestCaseRegistry().getAllTests().end();
|
std::vector<TestCaseInfo>::const_iterator itEnd = getStatics().getTestCaseRegistry().getAllTests().end();
|
||||||
for(; it != itEnd; ++it ) {
|
for(; it != itEnd; ++it ) {
|
||||||
// !TBD: consider listAs()
|
// !TBD: consider listAs()
|
||||||
std::cout << "\t" << it->getName() << "\n\t\t '" << it->getDescription() << "'\n";
|
std::cout << "\t" << it->getName() << "\n\t\t '" << it->getDescription() << "'\n";
|
||||||
|
@ -1,14 +1,35 @@
|
|||||||
//
|
/*
|
||||||
// catch_notimplemented_exception.h
|
* Created by Phil on 5/8/2012.
|
||||||
// CatchSelfTest
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
//
|
*
|
||||||
// Created by Phil Nash on 05/08/2012.
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
//
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
|
||||||
|
|
||||||
#ifndef CatchSelfTest_catch_notimplemented_exception_h
|
#include "catch_common.h"
|
||||||
#define CatchSelfTest_catch_notimplemented_exception_h
|
#include <ostream>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
class NotImplementedException : public std::exception
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NotImplementedException( const SourceLineInfo& lineInfo );
|
||||||
|
|
||||||
#endif
|
virtual ~NotImplementedException() throw() {}
|
||||||
|
|
||||||
|
virtual const char* what() const throw();
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string m_what;
|
||||||
|
SourceLineInfo m_lineInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
|
||||||
|
@ -1,14 +1,32 @@
|
|||||||
//
|
/*
|
||||||
// catch_notimplemented_exception.hpp
|
* Created by Phil on 5/8/2012.
|
||||||
// CatchSelfTest
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
//
|
*
|
||||||
// Created by Phil Nash on 05/08/2012.
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
//
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
*/
|
||||||
|
#ifndef TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
|
||||||
|
#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
|
||||||
|
|
||||||
#ifndef CatchSelfTest_catch_notimplemented_exception_hpp
|
#include "catch_notimplemented_exception.h"
|
||||||
#define CatchSelfTest_catch_notimplemented_exception_hpp
|
#include <ostream>
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
NotImplementedException::NotImplementedException( const SourceLineInfo& lineInfo )
|
||||||
|
: m_lineInfo( lineInfo ) {
|
||||||
|
std::ostringstream oss;
|
||||||
|
oss << lineInfo << "function ";
|
||||||
|
if( !lineInfo.function.empty() )
|
||||||
|
oss << lineInfo.function << " ";
|
||||||
|
oss << "not implemented";
|
||||||
|
m_what = oss.str();
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
const char* NotImplementedException::what() const throw() {
|
||||||
|
return m_what.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
|
||||||
|
#endif // TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
|
||||||
|
@ -106,7 +106,7 @@ namespace Catch {
|
|||||||
std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
|
std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
|
||||||
std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
|
std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
|
||||||
|
|
||||||
getCurrentContext().getTestCaseRegistry().registerTest( TestCaseInfo( new OcMethod( cls, selector ), name.c_str(), desc.c_str(), SourceLineInfo() ) );
|
getStaticRegisteries().registerTest( TestCaseInfo( new OcMethod( cls, selector ), name.c_str(), desc.c_str(), SourceLineInfo() ) );
|
||||||
noTestMethods++;
|
noTestMethods++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
|
#ifndef TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
|
||||||
#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
|
||||||
|
|
||||||
#include "catch_context.h"
|
#include "catch_interfaces_static_registries.h"
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ namespace Catch {
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
ReporterRegistrar( const std::string& name ) {
|
ReporterRegistrar( const std::string& name ) {
|
||||||
getCurrentContext().getReporterRegistry().registerReporter( name, new ReporterFactory() );
|
getStaticRegistries().registerReporter( name, new ReporterFactory() );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ namespace Catch {
|
|||||||
|
|
||||||
virtual void runAll( bool runHiddenTests = false ) {
|
virtual void runAll( bool runHiddenTests = false ) {
|
||||||
m_reporter->StartGroup( "" );
|
m_reporter->StartGroup( "" );
|
||||||
const std::vector<TestCaseInfo>& allTests = getCurrentContext().getTestCaseRegistry().getAllTests();
|
const std::vector<TestCaseInfo>& allTests = getStatics().getTestCaseRegistry().getAllTests();
|
||||||
for( std::size_t i=0; i < allTests.size(); ++i ) {
|
for( std::size_t i=0; i < allTests.size(); ++i ) {
|
||||||
if( runHiddenTests || !allTests[i].isHidden() ) {
|
if( runHiddenTests || !allTests[i].isHidden() ) {
|
||||||
if( aborting() ) {
|
if( aborting() ) {
|
||||||
@ -100,7 +100,7 @@ namespace Catch {
|
|||||||
|
|
||||||
TestSpec testSpec( rawTestSpec );
|
TestSpec testSpec( rawTestSpec );
|
||||||
|
|
||||||
const std::vector<TestCaseInfo>& allTests = getCurrentContext().getTestCaseRegistry().getAllTests();
|
const std::vector<TestCaseInfo>& allTests = getStatics().getTestCaseRegistry().getAllTests();
|
||||||
std::size_t testsRun = 0;
|
std::size_t testsRun = 0;
|
||||||
for( std::size_t i=0; i < allTests.size(); ++i ) {
|
for( std::size_t i=0; i < allTests.size(); ++i ) {
|
||||||
if( testSpec.matches( allTests[i].getName() ) ) {
|
if( testSpec.matches( allTests[i].getName() ) ) {
|
||||||
@ -282,7 +282,7 @@ namespace Catch {
|
|||||||
// This just means the test was aborted due to failure
|
// This just means the test was aborted due to failure
|
||||||
}
|
}
|
||||||
catch(...) {
|
catch(...) {
|
||||||
acceptMessage( getCurrentContext().getExceptionTranslatorRegistry().translateActiveException() );
|
acceptMessage( getStatics().getExceptionTranslatorRegistry().translateActiveException() );
|
||||||
acceptResult( ResultWas::ThrewException );
|
acceptResult( ResultWas::ThrewException );
|
||||||
}
|
}
|
||||||
m_info.clear();
|
m_info.clear();
|
||||||
|
@ -1,14 +1,73 @@
|
|||||||
//
|
/*
|
||||||
// catch_static_registries.hpp
|
* Created by Phil on 5/8/2012.
|
||||||
// CatchSelfTest
|
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
|
||||||
//
|
*
|
||||||
// Created by Phil Nash on 05/08/2012.
|
* Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
//
|
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
*/
|
||||||
|
#include "catch_interfaces_static_registries.h"
|
||||||
|
|
||||||
#ifndef CatchSelfTest_catch_static_registries_hpp
|
#include "catch_test_case_registry_impl.hpp"
|
||||||
#define CatchSelfTest_catch_static_registries_hpp
|
#include "catch_reporter_registry.hpp"
|
||||||
|
#include "catch_exception_translator_registry.hpp"
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
#endif
|
class StaticRegistries : public IStatics, public IStaticRegistries {
|
||||||
|
|
||||||
|
StaticRegistries( const StaticRegistries& );
|
||||||
|
void operator=( const StaticRegistries& );
|
||||||
|
|
||||||
|
public: // IStatics
|
||||||
|
StaticRegistries() {
|
||||||
|
}
|
||||||
|
virtual const IReporterRegistry& getReporterRegistry() const {
|
||||||
|
return m_reporterRegistry;
|
||||||
|
}
|
||||||
|
virtual const ITestCaseRegistry& getTestCaseRegistry() const {
|
||||||
|
return m_testCaseRegistry;
|
||||||
|
}
|
||||||
|
virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() {
|
||||||
|
return m_exceptionTranslatorRegistry;
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // IStaticRegistries
|
||||||
|
virtual void registerReporter( const std::string& name, IReporterFactory* factory ) {
|
||||||
|
m_reporterRegistry.registerReporter( name, factory );
|
||||||
|
}
|
||||||
|
virtual void registerTest( const TestCaseInfo& testInfo ) {
|
||||||
|
m_testCaseRegistry.registerTest( testInfo );
|
||||||
|
}
|
||||||
|
virtual void registerTranslator( const IExceptionTranslator* translator ) {
|
||||||
|
m_exceptionTranslatorRegistry.registerTranslator( translator );
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
TestRegistry m_testCaseRegistry;
|
||||||
|
ReporterRegistry m_reporterRegistry;
|
||||||
|
ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline StaticRegistries*& getTheStaticRegistries() {
|
||||||
|
static StaticRegistries* registries = NULL;
|
||||||
|
if( !registries )
|
||||||
|
registries = new StaticRegistries();
|
||||||
|
return registries;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IStatics& getStatics() {
|
||||||
|
return *getTheStaticRegistries();
|
||||||
|
}
|
||||||
|
IStaticRegistries& getStaticRegistries() {
|
||||||
|
return *getTheStaticRegistries();
|
||||||
|
}
|
||||||
|
void cleanUp() {
|
||||||
|
delete getTheStaticRegistries();
|
||||||
|
getTheStaticRegistries() = NULL;
|
||||||
|
Context::cleanUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // end namespace Catch
|
||||||
|
@ -44,7 +44,7 @@ namespace Catch {
|
|||||||
return m_functionsInOrder;
|
return m_functionsInOrder;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual std::vector<TestCaseInfo> getMatchingTestCases( const std::string& rawTestSpec ) {
|
virtual std::vector<TestCaseInfo> getMatchingTestCases( const std::string& rawTestSpec ) const {
|
||||||
TestSpec testSpec( rawTestSpec );
|
TestSpec testSpec( rawTestSpec );
|
||||||
|
|
||||||
std::vector<TestCaseInfo> testList;
|
std::vector<TestCaseInfo> testList;
|
||||||
@ -109,7 +109,7 @@ namespace Catch {
|
|||||||
const char* name,
|
const char* name,
|
||||||
const char* description,
|
const char* description,
|
||||||
const SourceLineInfo& lineInfo ) {
|
const SourceLineInfo& lineInfo ) {
|
||||||
getCurrentContext().getTestCaseRegistry().registerTest( TestCaseInfo( testCase, name, description, lineInfo ) );
|
getStaticRegistries().registerTest( TestCaseInfo( testCase, name, description, lineInfo ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#define TWOBLUECUBES_CATCH_SELF_TEST_HPP_INCLUDED
|
#define TWOBLUECUBES_CATCH_SELF_TEST_HPP_INCLUDED
|
||||||
|
|
||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
|
#include "catch_interfaces_static_registries.h"
|
||||||
|
|
||||||
#include "set"
|
#include "set"
|
||||||
|
|
||||||
@ -145,7 +146,7 @@ namespace Catch {
|
|||||||
|
|
||||||
static void runMatching( const std::string& testSpec,
|
static void runMatching( const std::string& testSpec,
|
||||||
Expected::Result expectedResult ) {
|
Expected::Result expectedResult ) {
|
||||||
forEach( getCurrentContext().getTestCaseRegistry().getMatchingTestCases( testSpec ),
|
forEach( getStatics().getTestCaseRegistry().getMatchingTestCases( testSpec ),
|
||||||
MetaTestRunner( expectedResult ) );
|
MetaTestRunner( expectedResult ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,11 @@
|
|||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
4A3D7DD01503869D005F9203 /* catch_matchers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_matchers.hpp; sourceTree = "<group>"; };
|
4A3D7DD01503869D005F9203 /* catch_matchers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_matchers.hpp; sourceTree = "<group>"; };
|
||||||
|
4A4B0F9715CE6CFB00AE2392 /* catch_static_registries_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_static_registries_impl.hpp; sourceTree = "<group>"; };
|
||||||
|
4A4B0F9915CE6EC100AE2392 /* catch_interfaces_static_registries.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_interfaces_static_registries.h; sourceTree = "<group>"; };
|
||||||
|
4A4B0F9A15CEF84800AE2392 /* catch_notimplemented_exception.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_notimplemented_exception.h; sourceTree = "<group>"; };
|
||||||
|
4A4B0F9B15CEF8C400AE2392 /* catch_notimplemented_exception.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_notimplemented_exception.hpp; sourceTree = "<group>"; };
|
||||||
|
4A4B0F9C15CEFA8300AE2392 /* catch_impl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_impl.hpp; sourceTree = "<group>"; };
|
||||||
4A6D0C20149B3D3B00DB3EAA /* CatchSelfTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CatchSelfTest; sourceTree = BUILT_PRODUCTS_DIR; };
|
4A6D0C20149B3D3B00DB3EAA /* CatchSelfTest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CatchSelfTest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
4A6D0C26149B3D3B00DB3EAA /* CatchSelfTest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = CatchSelfTest.1; sourceTree = "<group>"; };
|
4A6D0C26149B3D3B00DB3EAA /* CatchSelfTest.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = CatchSelfTest.1; sourceTree = "<group>"; };
|
||||||
4A6D0C2D149B3D9E00DB3EAA /* ApproxTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ApproxTests.cpp; path = ../../../SelfTest/ApproxTests.cpp; sourceTree = "<group>"; };
|
4A6D0C2D149B3D9E00DB3EAA /* ApproxTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ApproxTests.cpp; path = ../../../SelfTest/ApproxTests.cpp; sourceTree = "<group>"; };
|
||||||
@ -196,11 +201,14 @@
|
|||||||
4AC91CB4155B9EBF00DC5117 /* impl */ = {
|
4AC91CB4155B9EBF00DC5117 /* impl */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4A4B0F9715CE6CFB00AE2392 /* catch_static_registries_impl.hpp */,
|
||||||
4A6D0C50149B3E3D00DB3EAA /* catch_generators_impl.hpp */,
|
4A6D0C50149B3E3D00DB3EAA /* catch_generators_impl.hpp */,
|
||||||
4A6D0C52149B3E3D00DB3EAA /* catch_context_impl.hpp */,
|
4A6D0C52149B3E3D00DB3EAA /* catch_context_impl.hpp */,
|
||||||
4A6D0C5E149B3E3D00DB3EAA /* catch_runner_impl.hpp */,
|
4A6D0C5E149B3E3D00DB3EAA /* catch_runner_impl.hpp */,
|
||||||
4A6D0C62149B3E3D00DB3EAA /* catch_test_case_registry_impl.hpp */,
|
4A6D0C62149B3E3D00DB3EAA /* catch_test_case_registry_impl.hpp */,
|
||||||
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */,
|
4AB1C73514F97BDA00F31DF7 /* catch_console_colour_impl.hpp */,
|
||||||
|
4A4B0F9B15CEF8C400AE2392 /* catch_notimplemented_exception.hpp */,
|
||||||
|
4A4B0F9C15CEFA8300AE2392 /* catch_impl.hpp */,
|
||||||
);
|
);
|
||||||
name = impl;
|
name = impl;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -220,6 +228,7 @@
|
|||||||
4A6D0C47149B3E3D00DB3EAA /* catch_capture.hpp */,
|
4A6D0C47149B3E3D00DB3EAA /* catch_capture.hpp */,
|
||||||
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */,
|
4AC91CCE155CF02800DC5117 /* catch_expression.hpp */,
|
||||||
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */,
|
4AC91CD0155D8DA600DC5117 /* catch_expression_builder.hpp */,
|
||||||
|
4A4B0F9A15CEF84800AE2392 /* catch_notimplemented_exception.h */,
|
||||||
);
|
);
|
||||||
name = Assertions;
|
name = Assertions;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -261,6 +270,7 @@
|
|||||||
4AC91CC1155C387400DC5117 /* Interfaces */ = {
|
4AC91CC1155C387400DC5117 /* Interfaces */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
4A4B0F9915CE6EC100AE2392 /* catch_interfaces_static_registries.h */,
|
||||||
4A6D0C53149B3E3D00DB3EAA /* catch_interfaces_capture.h */,
|
4A6D0C53149B3E3D00DB3EAA /* catch_interfaces_capture.h */,
|
||||||
4A6D0C54149B3E3D00DB3EAA /* catch_interfaces_exception.h */,
|
4A6D0C54149B3E3D00DB3EAA /* catch_interfaces_exception.h */,
|
||||||
4A6D0C55149B3E3D00DB3EAA /* catch_interfaces_reporter.h */,
|
4A6D0C55149B3E3D00DB3EAA /* catch_interfaces_reporter.h */,
|
||||||
|
Loading…
Reference in New Issue
Block a user