1 /*
2  *  Created by Phil on 5/8/2012.
3  *  Copyright 2012 Two Blue Cubes Ltd. All rights reserved.
4  *
5  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
6  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7  */
8 #ifndef TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
9 #define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
10 
11 // Collect all the implementation files together here
12 // These are the equivalent of what would usually be cpp files
13 
14 #ifdef __clang__
15 #pragma clang diagnostic push
16 #pragma clang diagnostic ignored "-Wweak-vtables"
17 #endif
18 
19 #include "../catch_session.hpp"
20 #include "catch_registry_hub.hpp"
21 #include "catch_notimplemented_exception.hpp"
22 #include "catch_context_impl.hpp"
23 #include "catch_console_colour_impl.hpp"
24 #include "catch_generators_impl.hpp"
25 #include "catch_assertionresult.hpp"
26 #include "catch_test_case_info.hpp"
27 #include "catch_test_spec.hpp"
28 #include "catch_version.hpp"
29 #include "catch_message.hpp"
30 #include "catch_legacy_reporter_adapter.hpp"
31 #include "catch_timer.hpp"
32 #include "catch_common.hpp"
33 #include "catch_section.hpp"
34 #include "catch_debugger.hpp"
35 #include "catch_tostring.hpp"
36 #include "catch_result_builder.hpp"
37 #include "catch_tag_alias_registry.hpp"
38 #include "catch_test_case_tracker.hpp"
39 #include "catch_matchers_string.hpp"
40 
41 #include "../reporters/catch_reporter_multi.hpp"
42 #include "../reporters/catch_reporter_xml.hpp"
43 #include "../reporters/catch_reporter_junit.hpp"
44 #include "../reporters/catch_reporter_console.hpp"
45 #include "../reporters/catch_reporter_compact.hpp"
46 
47 namespace Catch {
48     // These are all here to avoid warnings about not having any out of line
49     // virtual methods
~NonCopyable()50     NonCopyable::~NonCopyable() {}
~IShared()51     IShared::~IShared() {}
~IStream()52     IStream::~IStream() CATCH_NOEXCEPT {}
~FileStream()53     FileStream::~FileStream() CATCH_NOEXCEPT {}
~CoutStream()54     CoutStream::~CoutStream() CATCH_NOEXCEPT {}
~DebugOutStream()55     DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
~StreamBufBase()56     StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
~IContext()57     IContext::~IContext() {}
~IResultCapture()58     IResultCapture::~IResultCapture() {}
~ITestCase()59     ITestCase::~ITestCase() {}
~ITestCaseRegistry()60     ITestCaseRegistry::~ITestCaseRegistry() {}
~IRegistryHub()61     IRegistryHub::~IRegistryHub() {}
~IMutableRegistryHub()62     IMutableRegistryHub::~IMutableRegistryHub() {}
~IExceptionTranslator()63     IExceptionTranslator::~IExceptionTranslator() {}
~IExceptionTranslatorRegistry()64     IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
~IReporter()65     IReporter::~IReporter() {}
~IReporterFactory()66     IReporterFactory::~IReporterFactory() {}
~IReporterRegistry()67     IReporterRegistry::~IReporterRegistry() {}
~IStreamingReporter()68     IStreamingReporter::~IStreamingReporter() {}
~AssertionStats()69     AssertionStats::~AssertionStats() {}
~SectionStats()70     SectionStats::~SectionStats() {}
~TestCaseStats()71     TestCaseStats::~TestCaseStats() {}
~TestGroupStats()72     TestGroupStats::~TestGroupStats() {}
~TestRunStats()73     TestRunStats::~TestRunStats() {}
~SectionNode()74     CumulativeReporterBase::SectionNode::~SectionNode() {}
~CumulativeReporterBase()75     CumulativeReporterBase::~CumulativeReporterBase() {}
76 
~StreamingReporterBase()77     StreamingReporterBase::~StreamingReporterBase() {}
~ConsoleReporter()78     ConsoleReporter::~ConsoleReporter() {}
~CompactReporter()79     CompactReporter::~CompactReporter() {}
~IRunner()80     IRunner::~IRunner() {}
~IMutableContext()81     IMutableContext::~IMutableContext() {}
~IConfig()82     IConfig::~IConfig() {}
~XmlReporter()83     XmlReporter::~XmlReporter() {}
~JunitReporter()84     JunitReporter::~JunitReporter() {}
~TestRegistry()85     TestRegistry::~TestRegistry() {}
~FreeFunctionTestCase()86     FreeFunctionTestCase::~FreeFunctionTestCase() {}
~IGeneratorInfo()87     IGeneratorInfo::~IGeneratorInfo() {}
~IGeneratorsForTest()88     IGeneratorsForTest::~IGeneratorsForTest() {}
~WildcardPattern()89     WildcardPattern::~WildcardPattern() {}
~Pattern()90     TestSpec::Pattern::~Pattern() {}
~NamePattern()91     TestSpec::NamePattern::~NamePattern() {}
~TagPattern()92     TestSpec::TagPattern::~TagPattern() {}
~ExcludedPattern()93     TestSpec::ExcludedPattern::~ExcludedPattern() {}
~MatcherUntypedBase()94     Matchers::Impl::MatcherUntypedBase::~MatcherUntypedBase() {}
95 
dummy()96     void Config::dummy() {}
97 
98     namespace TestCaseTracking {
~ITracker()99         ITracker::~ITracker() {}
~TrackerBase()100         TrackerBase::~TrackerBase() {}
~SectionTracker()101         SectionTracker::~SectionTracker() {}
~IndexTracker()102         IndexTracker::~IndexTracker() {}
103     }
104 }
105 
106 #ifdef __clang__
107 #pragma clang diagnostic pop
108 #endif
109 
110 #endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
111