mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 19:53:28 +01:00
da0edcbe25
Previously, some errors in Catch configuration would cause exceptions to be thrown before main was even entered. This leads to call to `std::terminate`, which is not a particularly nice way of ending the binary. Now these exceptions are registered with a global collector and used once Catch enters main. They can also be optionally ignored, if user supplies his own main and opts not to check them (or ignored them intentionally). Closes #921
109 lines
3.8 KiB
C++
109 lines
3.8 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_IMPL_HPP_INCLUDED
|
|
#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
|
|
|
|
// Collect all the implementation files together here
|
|
// These are the equivalent of what would usually be cpp files
|
|
|
|
#ifdef __clang__
|
|
#pragma clang diagnostic push
|
|
#pragma clang diagnostic ignored "-Wweak-vtables"
|
|
#endif
|
|
|
|
#include "../catch_session.hpp"
|
|
#include "catch_registry_hub.hpp"
|
|
#include "catch_notimplemented_exception.hpp"
|
|
#include "catch_context_impl.hpp"
|
|
#include "catch_console_colour_impl.hpp"
|
|
#include "catch_generators_impl.hpp"
|
|
#include "catch_assertionresult.hpp"
|
|
#include "catch_test_case_info.hpp"
|
|
#include "catch_test_spec.hpp"
|
|
#include "catch_version.hpp"
|
|
#include "catch_message.hpp"
|
|
#include "catch_timer.hpp"
|
|
#include "catch_common.hpp"
|
|
#include "catch_section.hpp"
|
|
#include "catch_debugger.hpp"
|
|
#include "catch_tostring.hpp"
|
|
#include "catch_result_builder.hpp"
|
|
#include "catch_tag_alias_registry.hpp"
|
|
#include "catch_test_case_tracker.hpp"
|
|
#include "catch_matchers_string.hpp"
|
|
#include "catch_startup_exception_registry.hpp"
|
|
|
|
#include "../reporters/catch_reporter_multi.hpp"
|
|
#include "../reporters/catch_reporter_xml.hpp"
|
|
#include "../reporters/catch_reporter_junit.hpp"
|
|
#include "../reporters/catch_reporter_console.hpp"
|
|
#include "../reporters/catch_reporter_compact.hpp"
|
|
|
|
namespace Catch {
|
|
// These are all here to avoid warnings about not having any out of line
|
|
// virtual methods
|
|
NonCopyable::~NonCopyable() {}
|
|
IStream::~IStream() noexcept {}
|
|
FileStream::~FileStream() noexcept {}
|
|
CoutStream::~CoutStream() noexcept {}
|
|
DebugOutStream::~DebugOutStream() noexcept {}
|
|
StreamBufBase::~StreamBufBase() noexcept {}
|
|
IContext::~IContext() {}
|
|
IResultCapture::~IResultCapture() {}
|
|
ITestCase::~ITestCase() {}
|
|
ITestCaseRegistry::~ITestCaseRegistry() {}
|
|
IRegistryHub::~IRegistryHub() {}
|
|
IMutableRegistryHub::~IMutableRegistryHub() {}
|
|
IExceptionTranslator::~IExceptionTranslator() {}
|
|
IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
|
|
IReporterFactory::~IReporterFactory() {}
|
|
IReporterRegistry::~IReporterRegistry() {}
|
|
IStreamingReporter::~IStreamingReporter() {}
|
|
AssertionStats::~AssertionStats() {}
|
|
SectionStats::~SectionStats() {}
|
|
TestCaseStats::~TestCaseStats() {}
|
|
TestGroupStats::~TestGroupStats() {}
|
|
TestRunStats::~TestRunStats() {}
|
|
CumulativeReporterBase::SectionNode::~SectionNode() {}
|
|
CumulativeReporterBase::~CumulativeReporterBase() {}
|
|
|
|
StreamingReporterBase::~StreamingReporterBase() {}
|
|
ConsoleReporter::~ConsoleReporter() {}
|
|
CompactReporter::~CompactReporter() {}
|
|
IRunner::~IRunner() {}
|
|
IMutableContext::~IMutableContext() {}
|
|
IConfig::~IConfig() {}
|
|
XmlReporter::~XmlReporter() {}
|
|
JunitReporter::~JunitReporter() {}
|
|
TestRegistry::~TestRegistry() {}
|
|
FreeFunctionTestCase::~FreeFunctionTestCase() {}
|
|
IGeneratorInfo::~IGeneratorInfo() {}
|
|
IGeneratorsForTest::~IGeneratorsForTest() {}
|
|
WildcardPattern::~WildcardPattern() {}
|
|
TestSpec::Pattern::~Pattern() {}
|
|
TestSpec::NamePattern::~NamePattern() {}
|
|
TestSpec::TagPattern::~TagPattern() {}
|
|
TestSpec::ExcludedPattern::~ExcludedPattern() {}
|
|
Matchers::Impl::MatcherUntypedBase::~MatcherUntypedBase() {}
|
|
|
|
void Config::dummy() {}
|
|
|
|
namespace TestCaseTracking {
|
|
ITracker::~ITracker() {}
|
|
TrackerBase::~TrackerBase() {}
|
|
SectionTracker::~SectionTracker() {}
|
|
IndexTracker::~IndexTracker() {}
|
|
}
|
|
}
|
|
|
|
#ifdef __clang__
|
|
#pragma clang diagnostic pop
|
|
#endif
|
|
|
|
#endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
|