catch2/include/internal/catch_registry_hub.hpp
Phil Nash ce612bf656 Squashed commit of the following:
commit 2a1e8bfc6e
Author: Phil Nash <github@philnash.me>
Date:   Thu Nov 1 08:16:15 2012 +0000

    Updated colour comments

commit f0f407fc3e
Author: Phil Nash <github@philnash.me>
Date:   Wed Oct 31 18:28:21 2012 +0000

    Manually applied merge #133 from Master

commit 355b95fda1
Author: Phil Nash <github@philnash.me>
Date:   Wed Oct 31 18:04:22 2012 +0000

    Cleaned up ANSI colour code impl a bit

commit 778f9c4fc7
Author: Phil Nash <github@philnash.me>
Date:   Tue Oct 30 09:09:30 2012 +0000

    Removed "no-" from Wno-global-constructors when disabling

commit 5efa4bcb8a
Author: Phil Nash <github@philnash.me>
Date:   Mon Oct 29 20:49:22 2012 +0000

    Regenerated single_include

commit 108f1937d8
Author: Phil Nash <github@philnash.me>
Date:   Mon Oct 29 20:46:45 2012 +0000

    Added terminal colour codes for POSIX

    With thanks to Adam Strzelecki

commit 8f4cc541d5
Author: Phil Nash <github@philnash.me>
Date:   Mon Oct 29 19:55:34 2012 +0000

    Added regression test baselines

commit 2e203a1834
Author: Phil Nash <github@philnash.me>
Date:   Mon Oct 29 19:55:13 2012 +0000

    Fixed remaining reporting regressions

commit 134e45b3ad
Author: Phil Nash <github@philnash.me>
Date:   Sun Oct 28 20:57:21 2012 +0000

    Fixed #132

commit 2f92db9898
Author: Phil Nash <github@philnash.me>
Date:   Sun Oct 28 12:15:34 2012 +0000

    Updated the readme specifically for the Integration branch

commit 82acc2ca05
Author: Phil Nash <github@philnash.me>
Date:   Sun Oct 28 12:07:17 2012 +0000

    Regenerated single include

commit fe1d7c1d08
Author: Phil Nash <github@philnash.me>
Date:   Sun Oct 28 10:27:44 2012 +0000

    Small fixes and tweaks

commit 355b5e546d
Author: Phil Nash <github@philnash.me>
Date:   Fri Oct 26 09:05:36 2012 +0100

    Some tidy-up

commit f847186ebb
Author: Phil Nash <github@philnash.me>
Date:   Fri Oct 26 08:45:23 2012 +0100

    AssertionResultBuilder -> ExpressionResultBuilder

commit 8cca2f1369
Author: Phil Nash <github@philnash.me>
Date:   Wed Oct 24 22:09:01 2012 +0100

    ExpressionBuilder ->ExpressionDecomposer
    Expression -> ExpressionLhs

commit e04e74f896
Author: Phil Nash <github@philnash.me>
Date:   Wed Oct 24 21:59:47 2012 +0100

    More AssertionResult refactoring

commit 1dd56d4d2b
Author: Phil Nash <github@philnash.me>
Date:   Fri Oct 19 08:01:34 2012 +0100

    AssertionResultBuilder can be constructed from result type

commit f2d5f1b3e4
Author: Phil Nash <github@philnash.me>
Date:   Fri Oct 19 08:01:05 2012 +0100

    Expression has its own result builder - not passed in from expression builder

commit e3b111a39a
Author: Phil Nash <github@philnash.me>
Date:   Thu Oct 18 22:59:16 2012 +0100

    streamlined acceptResult

commit 3ad13256e1
Author: Phil Nash <github@philnash.me>
Date:   Thu Oct 18 08:39:44 2012 +0100

    Refactored assertion builder stuff out of expression builder

commit c96f9330a0
Author: Phil Nash <github@philnash.me>
Date:   Wed Oct 17 08:14:22 2012 +0100

    Collect assertion info up front

commit a5fa78284d
Author: Phil Nash <github@philnash.me>
Date:   Tue Oct 16 08:33:13 2012 +0100

    ResultData -> AssertionResultData

commit c597a893fa
Author: Phil Nash <github@philnash.me>
Date:   Tue Oct 16 08:31:05 2012 +0100

    ResultInfo -> AssertionResult filenames and variables

commit d16955f63a
Author: Phil Nash <github@philnash.me>
Date:   Tue Oct 16 08:27:21 2012 +0100

    Renamed ResultInfo -> AssertionResult

commit 175da3ef64
Author: Phil Nash <github@philnash.me>
Date:   Fri Oct 12 18:39:22 2012 +0100

    regen test 3
2012-11-01 08:27:09 +00:00

84 lines
2.7 KiB
C++

/*
* Created by Phil on 5/8/2012.
* Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
*
* 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_REGISTRY_HUB_HPP_INCLUDED
#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
#include "catch_interfaces_registry_hub.h"
#include "catch_test_case_registry_impl.hpp"
#include "catch_reporter_registry.hpp"
#include "catch_exception_translator_registry.hpp"
namespace Catch {
namespace {
class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
RegistryHub( const RegistryHub& );
void operator=( const RegistryHub& );
public: // IRegistryHub
RegistryHub() {
}
virtual const IReporterRegistry& getReporterRegistry() const {
return m_reporterRegistry;
}
virtual const ITestCaseRegistry& getTestCaseRegistry() const {
return m_testCaseRegistry;
}
virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() {
return m_exceptionTranslatorRegistry;
}
public: // IMutableRegistryHub
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;
};
// Single, global, instance
inline RegistryHub*& getTheRegistryHub() {
static RegistryHub* theRegistryHub = NULL;
if( !theRegistryHub )
theRegistryHub = new RegistryHub();
return theRegistryHub;
}
}
IRegistryHub& getRegistryHub() {
return *getTheRegistryHub();
}
IMutableRegistryHub& getMutableRegistryHub() {
return *getTheRegistryHub();
}
void cleanUp() {
delete getTheRegistryHub();
getTheRegistryHub() = NULL;
cleanUpContext();
}
std::string translateActiveException() {
return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
}
} // end namespace Catch
#endif // TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED