mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	Removed LegacyReporter support
This commit is contained in:
		@@ -112,7 +112,6 @@
 | 
			
		||||
#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
 | 
			
		||||
 | 
			
		||||
#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
 | 
			
		||||
#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
 | 
			
		||||
 | 
			
		||||
// "BDD-style" convenience wrappers
 | 
			
		||||
#ifdef CATCH_CONFIG_VARIADIC_MACROS
 | 
			
		||||
@@ -179,7 +178,6 @@
 | 
			
		||||
#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
 | 
			
		||||
 | 
			
		||||
#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
 | 
			
		||||
#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,6 @@
 | 
			
		||||
#include "catch_test_spec.hpp"
 | 
			
		||||
#include "catch_version.hpp"
 | 
			
		||||
#include "catch_message.hpp"
 | 
			
		||||
#include "catch_legacy_reporter_adapter.hpp"
 | 
			
		||||
#include "catch_timer.hpp"
 | 
			
		||||
#include "catch_common.hpp"
 | 
			
		||||
#include "catch_section.hpp"
 | 
			
		||||
@@ -59,7 +58,6 @@ namespace Catch {
 | 
			
		||||
    IMutableRegistryHub::~IMutableRegistryHub() {}
 | 
			
		||||
    IExceptionTranslator::~IExceptionTranslator() {}
 | 
			
		||||
    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
 | 
			
		||||
    IReporter::~IReporter() {}
 | 
			
		||||
    IReporterFactory::~IReporterFactory() {}
 | 
			
		||||
    IReporterRegistry::~IReporterRegistry() {}
 | 
			
		||||
    IStreamingReporter::~IStreamingReporter() {}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,60 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  Created by Phil on 6th April 2013.
 | 
			
		||||
 *  Copyright 2013 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_LEGACY_REPORTER_ADAPTER_H_INCLUDED
 | 
			
		||||
#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "catch_interfaces_reporter.h"
 | 
			
		||||
 | 
			
		||||
namespace Catch
 | 
			
		||||
{
 | 
			
		||||
    // Deprecated
 | 
			
		||||
    struct IReporter : IShared {
 | 
			
		||||
        virtual ~IReporter();
 | 
			
		||||
 | 
			
		||||
        virtual bool shouldRedirectStdout() const = 0;
 | 
			
		||||
 | 
			
		||||
        virtual void StartTesting() = 0;
 | 
			
		||||
        virtual void EndTesting( Totals const& totals ) = 0;
 | 
			
		||||
        virtual void StartGroup( std::string const& groupName ) = 0;
 | 
			
		||||
        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
 | 
			
		||||
        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
 | 
			
		||||
        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
 | 
			
		||||
        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
 | 
			
		||||
        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
 | 
			
		||||
        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
 | 
			
		||||
        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
 | 
			
		||||
        virtual void Aborted() = 0;
 | 
			
		||||
        virtual void Result( AssertionResult const& result ) = 0;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
 | 
			
		||||
        virtual ~LegacyReporterAdapter();
 | 
			
		||||
 | 
			
		||||
        virtual ReporterPreferences getPreferences() const;
 | 
			
		||||
        virtual void noMatchingTestCases( std::string const& );
 | 
			
		||||
        virtual void testRunStarting( TestRunInfo const& );
 | 
			
		||||
        virtual void testGroupStarting( GroupInfo const& groupInfo );
 | 
			
		||||
        virtual void testCaseStarting( TestCaseInfo const& testInfo );
 | 
			
		||||
        virtual void sectionStarting( SectionInfo const& sectionInfo );
 | 
			
		||||
        virtual void assertionStarting( AssertionInfo const& );
 | 
			
		||||
        virtual bool assertionEnded( AssertionStats const& assertionStats );
 | 
			
		||||
        virtual void sectionEnded( SectionStats const& sectionStats );
 | 
			
		||||
        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
 | 
			
		||||
        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
 | 
			
		||||
        virtual void testRunEnded( TestRunStats const& testRunStats );
 | 
			
		||||
        virtual void skipTest( TestCaseInfo const& );
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        Ptr<IReporter> m_legacyReporter;
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
 | 
			
		||||
@@ -1,84 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  Created by Phil on 6th April 2013.
 | 
			
		||||
 *  Copyright 2013 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_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
 | 
			
		||||
#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "catch_legacy_reporter_adapter.h"
 | 
			
		||||
 | 
			
		||||
namespace Catch
 | 
			
		||||
{
 | 
			
		||||
    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
 | 
			
		||||
    :   m_legacyReporter( legacyReporter )
 | 
			
		||||
    {}
 | 
			
		||||
    LegacyReporterAdapter::~LegacyReporterAdapter() {}
 | 
			
		||||
 | 
			
		||||
    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
 | 
			
		||||
        ReporterPreferences prefs;
 | 
			
		||||
        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
 | 
			
		||||
        return prefs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
 | 
			
		||||
    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
 | 
			
		||||
        m_legacyReporter->StartTesting();
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
 | 
			
		||||
        m_legacyReporter->StartGroup( groupInfo.name );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
 | 
			
		||||
        m_legacyReporter->StartTestCase( testInfo );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
 | 
			
		||||
        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
 | 
			
		||||
        // Not on legacy interface
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
 | 
			
		||||
        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
 | 
			
		||||
            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
 | 
			
		||||
                    it != itEnd;
 | 
			
		||||
                    ++it ) {
 | 
			
		||||
                if( it->type == ResultWas::Info ) {
 | 
			
		||||
                    ResultBuilder rb( getCurrentRunContext(), it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
 | 
			
		||||
                    rb << it->message;
 | 
			
		||||
                    rb.setResultType( ResultWas::Info );
 | 
			
		||||
                    AssertionResult result = rb.build();
 | 
			
		||||
                    m_legacyReporter->Result( result );
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        m_legacyReporter->Result( assertionStats.assertionResult );
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
 | 
			
		||||
        if( sectionStats.missingAssertions )
 | 
			
		||||
            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
 | 
			
		||||
        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
 | 
			
		||||
        m_legacyReporter->EndTestCase
 | 
			
		||||
            (   testCaseStats.testInfo,
 | 
			
		||||
                testCaseStats.totals,
 | 
			
		||||
                testCaseStats.stdOut,
 | 
			
		||||
                testCaseStats.stdErr );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
 | 
			
		||||
        if( testGroupStats.aborting )
 | 
			
		||||
            m_legacyReporter->Aborted();
 | 
			
		||||
        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
 | 
			
		||||
        m_legacyReporter->EndTesting( testRunStats.totals );
 | 
			
		||||
    }
 | 
			
		||||
    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
 | 
			
		||||
@@ -9,46 +9,14 @@
 | 
			
		||||
#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include "catch_interfaces_registry_hub.h"
 | 
			
		||||
#include "catch_legacy_reporter_adapter.h"
 | 
			
		||||
 | 
			
		||||
namespace Catch {
 | 
			
		||||
 | 
			
		||||
    template<typename T>
 | 
			
		||||
    class LegacyReporterRegistrar {
 | 
			
		||||
 | 
			
		||||
        class ReporterFactory : public IReporterFactory {
 | 
			
		||||
            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
 | 
			
		||||
                return new LegacyReporterAdapter( new T( config ) );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            virtual std::string getDescription() const {
 | 
			
		||||
                return T::getDescription();
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    public:
 | 
			
		||||
 | 
			
		||||
        LegacyReporterRegistrar( std::string const& name ) {
 | 
			
		||||
            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    template<typename T>
 | 
			
		||||
    class ReporterRegistrar {
 | 
			
		||||
 | 
			
		||||
        class ReporterFactory : public SharedImpl<IReporterFactory> {
 | 
			
		||||
 | 
			
		||||
            // *** Please Note ***:
 | 
			
		||||
            // - If you end up here looking at a compiler error because it's trying to register
 | 
			
		||||
            // your custom reporter class be aware that the native reporter interface has changed
 | 
			
		||||
            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
 | 
			
		||||
            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
 | 
			
		||||
            // However please consider updating to the new interface as the old one is now
 | 
			
		||||
            // deprecated and will probably be removed quite soon!
 | 
			
		||||
            // Please contact me via github if you have any questions at all about this.
 | 
			
		||||
            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
 | 
			
		||||
            // no idea who is actually using custom reporters at all (possibly no-one!).
 | 
			
		||||
            // The new interface is designed to minimise exposure to interface changes in the future.
 | 
			
		||||
            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
 | 
			
		||||
                return new T( config );
 | 
			
		||||
            }
 | 
			
		||||
@@ -86,9 +54,6 @@ namespace Catch {
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
 | 
			
		||||
    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
 | 
			
		||||
 | 
			
		||||
#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
 | 
			
		||||
    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -84,8 +84,6 @@
 | 
			
		||||
		2656C227192A78410040DB02 /* catch_reenable_warnings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_reenable_warnings.h; sourceTree = "<group>"; };
 | 
			
		||||
		266B06B616F3A60A004ED264 /* VariadicMacrosTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = VariadicMacrosTests.cpp; path = ../../../SelfTest/VariadicMacrosTests.cpp; sourceTree = "<group>"; };
 | 
			
		||||
		266ECD73170F3C620030D735 /* BDDTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BDDTests.cpp; path = ../../../SelfTest/BDDTests.cpp; sourceTree = "<group>"; };
 | 
			
		||||
		266ECD8C1713614B0030D735 /* catch_legacy_reporter_adapter.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = catch_legacy_reporter_adapter.hpp; sourceTree = "<group>"; };
 | 
			
		||||
		266ECD8D1713614B0030D735 /* catch_legacy_reporter_adapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = catch_legacy_reporter_adapter.h; sourceTree = "<group>"; };
 | 
			
		||||
		26711C8D195D465C0033EDA2 /* TagAliasTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TagAliasTests.cpp; path = ../../../SelfTest/TagAliasTests.cpp; sourceTree = "<group>"; };
 | 
			
		||||
		26711C90195D46CD0033EDA2 /* catch_interfaces_tag_alias_registry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_interfaces_tag_alias_registry.h; sourceTree = "<group>"; };
 | 
			
		||||
		26711C91195D47820033EDA2 /* catch_tag_alias.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = catch_tag_alias.h; sourceTree = "<group>"; };
 | 
			
		||||
@@ -437,8 +435,6 @@
 | 
			
		||||
		4AC91CC2155C388300DC5117 /* Infrastructure */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				266ECD8C1713614B0030D735 /* catch_legacy_reporter_adapter.hpp */,
 | 
			
		||||
				266ECD8D1713614B0030D735 /* catch_legacy_reporter_adapter.h */,
 | 
			
		||||
				4A6D0C49149B3E3D00DB3EAA /* catch_common.h */,
 | 
			
		||||
				262E739A1846759000CAC268 /* catch_common.hpp */,
 | 
			
		||||
				4A6D0C4B149B3E3D00DB3EAA /* catch_debugger.hpp */,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user