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 
40 #include "../reporters/catch_reporter_multi.hpp"
41 #include "../reporters/catch_reporter_xml.hpp"
42 #include "../reporters/catch_reporter_junit.hpp"
43 #include "../reporters/catch_reporter_console.hpp"
44 #include "../reporters/catch_reporter_compact.hpp"
45 
46 namespace Catch {
47     // These are all here to avoid warnings about not having any out of line
48     // virtual methods
~NonCopyable()49     NonCopyable::~NonCopyable() {}
~IShared()50     IShared::~IShared() {}
~IStream()51     IStream::~IStream() CATCH_NOEXCEPT {}
~FileStream()52     FileStream::~FileStream() CATCH_NOEXCEPT {}
~CoutStream()53     CoutStream::~CoutStream() CATCH_NOEXCEPT {}
~DebugOutStream()54     DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
~StreamBufBase()55     StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
~IContext()56     IContext::~IContext() {}
~IResultCapture()57     IResultCapture::~IResultCapture() {}
~ITestCase()58     ITestCase::~ITestCase() {}
~ITestCaseRegistry()59     ITestCaseRegistry::~ITestCaseRegistry() {}
~IRegistryHub()60     IRegistryHub::~IRegistryHub() {}
~IMutableRegistryHub()61     IMutableRegistryHub::~IMutableRegistryHub() {}
~IExceptionTranslator()62     IExceptionTranslator::~IExceptionTranslator() {}
~IExceptionTranslatorRegistry()63     IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
~IReporter()64     IReporter::~IReporter() {}
~IReporterFactory()65     IReporterFactory::~IReporterFactory() {}
~IReporterRegistry()66     IReporterRegistry::~IReporterRegistry() {}
~IStreamingReporter()67     IStreamingReporter::~IStreamingReporter() {}
~AssertionStats()68     AssertionStats::~AssertionStats() {}
~SectionStats()69     SectionStats::~SectionStats() {}
~TestCaseStats()70     TestCaseStats::~TestCaseStats() {}
~TestGroupStats()71     TestGroupStats::~TestGroupStats() {}
~TestRunStats()72     TestRunStats::~TestRunStats() {}
~SectionNode()73     CumulativeReporterBase::SectionNode::~SectionNode() {}
~CumulativeReporterBase()74     CumulativeReporterBase::~CumulativeReporterBase() {}
75 
~StreamingReporterBase()76     StreamingReporterBase::~StreamingReporterBase() {}
~ConsoleReporter()77     ConsoleReporter::~ConsoleReporter() {}
~CompactReporter()78     CompactReporter::~CompactReporter() {}
~IRunner()79     IRunner::~IRunner() {}
~IMutableContext()80     IMutableContext::~IMutableContext() {}
~IConfig()81     IConfig::~IConfig() {}
~XmlReporter()82     XmlReporter::~XmlReporter() {}
~JunitReporter()83     JunitReporter::~JunitReporter() {}
~TestRegistry()84     TestRegistry::~TestRegistry() {}
~FreeFunctionTestCase()85     FreeFunctionTestCase::~FreeFunctionTestCase() {}
~IGeneratorInfo()86     IGeneratorInfo::~IGeneratorInfo() {}
~IGeneratorsForTest()87     IGeneratorsForTest::~IGeneratorsForTest() {}
~WildcardPattern()88     WildcardPattern::~WildcardPattern() {}
~Pattern()89     TestSpec::Pattern::~Pattern() {}
~NamePattern()90     TestSpec::NamePattern::~NamePattern() {}
~TagPattern()91     TestSpec::TagPattern::~TagPattern() {}
~ExcludedPattern()92     TestSpec::ExcludedPattern::~ExcludedPattern() {}
93 
~Equals()94     Matchers::Impl::StdString::Equals::~Equals() {}
~Contains()95     Matchers::Impl::StdString::Contains::~Contains() {}
~StartsWith()96     Matchers::Impl::StdString::StartsWith::~StartsWith() {}
~EndsWith()97     Matchers::Impl::StdString::EndsWith::~EndsWith() {}
98 
dummy()99     void Config::dummy() {}
100 
101     namespace TestCaseTracking {
~ITracker()102         ITracker::~ITracker() {}
~TrackerBase()103         TrackerBase::~TrackerBase() {}
~SectionTracker()104         SectionTracker::~SectionTracker() {}
~IndexTracker()105         IndexTracker::~IndexTracker() {}
106     }
107 }
108 
109 #ifdef __clang__
110 #pragma clang diagnostic pop
111 #endif
112 
113 #endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
114