mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	removed redundant virtuals on override functions (and added a couple of overrides)
This commit is contained in:
		| @@ -80,19 +80,19 @@ namespace Catch { | ||||
|         bool showHelp() const; | ||||
|  | ||||
|         // IConfig interface | ||||
|         virtual bool allowThrows() const override; | ||||
|         virtual std::ostream& stream() const override; | ||||
|         virtual std::string name() const override; | ||||
|         virtual bool includeSuccessfulResults() const override; | ||||
|         virtual bool warnAboutMissingAssertions() const override; | ||||
|         virtual ShowDurations::OrNot showDurations() const override; | ||||
|         virtual RunTests::InWhatOrder runOrder() const override; | ||||
|         virtual unsigned int rngSeed() const override; | ||||
|         virtual UseColour::YesOrNo useColour() const override; | ||||
|         virtual bool shouldDebugBreak() const override; | ||||
|         virtual int abortAfter() const override; | ||||
|         virtual bool showInvisibles() const override; | ||||
|         virtual Verbosity verbosity() const override; | ||||
|         bool allowThrows() const override; | ||||
|         std::ostream& stream() const override; | ||||
|         std::string name() const override; | ||||
|         bool includeSuccessfulResults() const override; | ||||
|         bool warnAboutMissingAssertions() const override; | ||||
|         ShowDurations::OrNot showDurations() const override; | ||||
|         RunTests::InWhatOrder runOrder() const override; | ||||
|         unsigned int rngSeed() const override; | ||||
|         UseColour::YesOrNo useColour() const override; | ||||
|         bool shouldDebugBreak() const override; | ||||
|         int abortAfter() const override; | ||||
|         bool showInvisibles() const override; | ||||
|         Verbosity verbosity() const override; | ||||
|  | ||||
|     private: | ||||
|  | ||||
|   | ||||
| @@ -81,7 +81,7 @@ public: | ||||
|             .endExpression( *this ); | ||||
|     } | ||||
|  | ||||
|     virtual void reconstructExpression( std::string& dest ) const override { | ||||
|     void reconstructExpression( std::string& dest ) const override { | ||||
|         dest = ::Catch::Detail::stringify( m_lhs ); | ||||
|     } | ||||
|  | ||||
| @@ -117,11 +117,11 @@ public: | ||||
|             .endExpression( *this ); | ||||
|     } | ||||
|  | ||||
|     virtual bool isBinaryExpression() const override { | ||||
|     bool isBinaryExpression() const override { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     virtual void reconstructExpression( std::string& dest ) const override { | ||||
|     void reconstructExpression( std::string& dest ) const override { | ||||
|         std::string lhs = ::Catch::Detail::stringify( m_lhs ); | ||||
|         std::string rhs = ::Catch::Detail::stringify( m_rhs ); | ||||
|         char delim = lhs.size() + rhs.size() < 40 && | ||||
| @@ -151,11 +151,11 @@ public: | ||||
|     MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString ) | ||||
|         : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {} | ||||
|  | ||||
|     virtual bool isBinaryExpression() const override { | ||||
|     bool isBinaryExpression() const override { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     virtual void reconstructExpression( std::string& dest ) const override { | ||||
|     void reconstructExpression( std::string& dest ) const override { | ||||
|         std::string matcherAsString = m_matcher.toString(); | ||||
|         dest = ::Catch::Detail::stringify( m_arg ); | ||||
|         dest += ' '; | ||||
|   | ||||
| @@ -53,14 +53,14 @@ namespace Matchers { | ||||
|  | ||||
|         template<typename ArgT> | ||||
|         struct MatchAllOf : MatcherBase<ArgT> { | ||||
|             virtual bool match( ArgT const& arg ) const override { | ||||
|             bool match( ArgT const& arg ) const override { | ||||
|                 for( auto matcher : m_matchers ) { | ||||
|                     if (!matcher->match(arg)) | ||||
|                         return false; | ||||
|                 } | ||||
|                 return true; | ||||
|             } | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 std::string description; | ||||
|                 description.reserve( 4 + m_matchers.size()*32 ); | ||||
|                 description += "( "; | ||||
| @@ -86,14 +86,14 @@ namespace Matchers { | ||||
|         template<typename ArgT> | ||||
|         struct MatchAnyOf : MatcherBase<ArgT> { | ||||
|  | ||||
|             virtual bool match( ArgT const& arg ) const override { | ||||
|             bool match( ArgT const& arg ) const override { | ||||
|                 for( auto matcher : m_matchers ) { | ||||
|                     if (matcher->match(arg)) | ||||
|                         return true; | ||||
|                 } | ||||
|                 return false; | ||||
|             } | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 std::string description; | ||||
|                 description.reserve( 4 + m_matchers.size()*32 ); | ||||
|                 description += "( "; | ||||
| @@ -122,11 +122,11 @@ namespace Matchers { | ||||
|  | ||||
|             MatchNotOf( MatcherBase<ArgT> const& underlyingMatcher ) : m_underlyingMatcher( underlyingMatcher ) {} | ||||
|  | ||||
|             virtual bool match( ArgT const& arg ) const override { | ||||
|             bool match( ArgT const& arg ) const override { | ||||
|                 return !m_underlyingMatcher.match( arg ); | ||||
|             } | ||||
|  | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 return "not " + m_underlyingMatcher.toString(); | ||||
|             } | ||||
|             MatcherBase<ArgT> const& m_underlyingMatcher; | ||||
|   | ||||
| @@ -29,7 +29,7 @@ namespace Matchers { | ||||
|  | ||||
|         struct StringMatcherBase : MatcherBase<std::string> { | ||||
|             StringMatcherBase( std::string const& operation, CasedString const& comparator ); | ||||
|             virtual std::string describe() const override; | ||||
|             std::string describe() const override; | ||||
|  | ||||
|             CasedString m_comparator; | ||||
|             std::string m_operation; | ||||
| @@ -37,19 +37,19 @@ namespace Matchers { | ||||
|  | ||||
|         struct EqualsMatcher : StringMatcherBase { | ||||
|             EqualsMatcher( CasedString const& comparator ); | ||||
|             virtual bool match( std::string const& source ) const override; | ||||
|             bool match( std::string const& source ) const override; | ||||
|         }; | ||||
|         struct ContainsMatcher : StringMatcherBase { | ||||
|             ContainsMatcher( CasedString const& comparator ); | ||||
|             virtual bool match( std::string const& source ) const override; | ||||
|             bool match( std::string const& source ) const override; | ||||
|         }; | ||||
|         struct StartsWithMatcher : StringMatcherBase { | ||||
|             StartsWithMatcher( CasedString const& comparator ); | ||||
|             virtual bool match( std::string const& source ) const override; | ||||
|             bool match( std::string const& source ) const override; | ||||
|         }; | ||||
|         struct EndsWithMatcher : StringMatcherBase { | ||||
|             EndsWithMatcher( CasedString const& comparator ); | ||||
|             virtual bool match( std::string const& source ) const override; | ||||
|             bool match( std::string const& source ) const override; | ||||
|         }; | ||||
|  | ||||
|     } // namespace StdString | ||||
|   | ||||
| @@ -24,7 +24,7 @@ namespace Matchers { | ||||
|                 return std::find(v.begin(), v.end(), m_comparator) != v.end(); | ||||
|             } | ||||
|  | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 return "Contains: " + ::Catch::Detail::stringify( m_comparator ); | ||||
|             } | ||||
|  | ||||
| @@ -45,7 +45,7 @@ namespace Matchers { | ||||
|                         return false; | ||||
|                 return true; | ||||
|             } | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 return "Contains: " + ::Catch::Detail::stringify( m_comparator ); | ||||
|             } | ||||
|  | ||||
| @@ -69,7 +69,7 @@ namespace Matchers { | ||||
|                         return false; | ||||
|                 return true; | ||||
|             } | ||||
|             virtual std::string describe() const override { | ||||
|             std::string describe() const override { | ||||
|                 return "Equals: " + ::Catch::Detail::stringify( m_comparator ); | ||||
|             } | ||||
|             std::vector<T> const& m_comparator; | ||||
|   | ||||
| @@ -112,7 +112,7 @@ namespace Catch { | ||||
|                     arcSafeRelease( m_substr ); | ||||
|                 } | ||||
|  | ||||
|                 virtual bool match( NSString* arg ) const override { | ||||
|                 bool match( NSString* arg ) const override { | ||||
|                     return false; | ||||
|                 } | ||||
|  | ||||
| @@ -122,12 +122,12 @@ namespace Catch { | ||||
|             struct Equals : StringHolder { | ||||
|                 Equals( NSString* substr ) : StringHolder( substr ){} | ||||
|  | ||||
|                 virtual bool match( NSString* str ) const override { | ||||
|                 bool match( NSString* str ) const override { | ||||
|                     return  (str != nil || m_substr == nil ) && | ||||
|                             [str isEqualToString:m_substr]; | ||||
|                 } | ||||
|  | ||||
|                 virtual std::string describe() const override { | ||||
|                 std::string describe() const override { | ||||
|                     return "equals string: " + Catch::toString( m_substr ); | ||||
|                 } | ||||
|             }; | ||||
| @@ -135,12 +135,12 @@ namespace Catch { | ||||
|             struct Contains : StringHolder { | ||||
|                 Contains( NSString* substr ) : StringHolder( substr ){} | ||||
|  | ||||
|                 virtual bool match( NSString* str ) const { | ||||
|                 bool match( NSString* str ) const { | ||||
|                     return  (str != nil || m_substr == nil ) && | ||||
|                             [str rangeOfString:m_substr].location != NSNotFound; | ||||
|                 } | ||||
|  | ||||
|                 virtual std::string describe() const override { | ||||
|                 std::string describe() const override { | ||||
|                     return "contains string: " + Catch::toString( m_substr ); | ||||
|                 } | ||||
|             }; | ||||
| @@ -148,24 +148,24 @@ namespace Catch { | ||||
|             struct StartsWith : StringHolder { | ||||
|                 StartsWith( NSString* substr ) : StringHolder( substr ){} | ||||
|  | ||||
|                 virtual bool match( NSString* str ) const { | ||||
|                 bool match( NSString* str ) const override { | ||||
|                     return  (str != nil || m_substr == nil ) && | ||||
|                             [str rangeOfString:m_substr].location == 0; | ||||
|                 } | ||||
|  | ||||
|                 virtual std::string describe() const override { | ||||
|                 std::string describe() const override { | ||||
|                     return "starts with: " + Catch::toString( m_substr ); | ||||
|                 } | ||||
|             }; | ||||
|             struct EndsWith : StringHolder { | ||||
|                 EndsWith( NSString* substr ) : StringHolder( substr ){} | ||||
|  | ||||
|                 virtual bool match( NSString* str ) const { | ||||
|                 bool match( NSString* str ) const override { | ||||
|                     return  (str != nil || m_substr == nil ) && | ||||
|                             [str rangeOfString:m_substr].location == [str length] - [m_substr length]; | ||||
|                 } | ||||
|  | ||||
|                 virtual std::string describe() const override { | ||||
|                 std::string describe() const override { | ||||
|                     return "ends with: " + Catch::toString( m_substr ); | ||||
|                 } | ||||
|             }; | ||||
|   | ||||
| @@ -24,39 +24,39 @@ namespace Catch { | ||||
|         public: // IRegistryHub | ||||
|             RegistryHub() { | ||||
|             } | ||||
|             virtual IReporterRegistry const& getReporterRegistry() const override { | ||||
|             IReporterRegistry const& getReporterRegistry() const override { | ||||
|                 return m_reporterRegistry; | ||||
|             } | ||||
|             virtual ITestCaseRegistry const& getTestCaseRegistry() const override { | ||||
|             ITestCaseRegistry const& getTestCaseRegistry() const override { | ||||
|                 return m_testCaseRegistry; | ||||
|             } | ||||
|             virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() override { | ||||
|             IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() override { | ||||
|                 return m_exceptionTranslatorRegistry; | ||||
|             } | ||||
|             virtual ITagAliasRegistry const& getTagAliasRegistry() const override { | ||||
|             ITagAliasRegistry const& getTagAliasRegistry() const override { | ||||
|                 return m_tagAliasRegistry; | ||||
|             } | ||||
|             virtual StartupExceptionRegistry const& getStartupExceptionRegistry() const override { | ||||
|             StartupExceptionRegistry const& getStartupExceptionRegistry() const override { | ||||
|                 return m_exceptionRegistry; | ||||
|             } | ||||
|  | ||||
|         public: // IMutableRegistryHub | ||||
|             virtual void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) override { | ||||
|             void registerReporter( std::string const& name, IReporterFactoryPtr const& factory ) override { | ||||
|                 m_reporterRegistry.registerReporter( name, factory ); | ||||
|             } | ||||
|             virtual void registerListener( IReporterFactoryPtr const& factory ) override { | ||||
|             void registerListener( IReporterFactoryPtr const& factory ) override { | ||||
|                 m_reporterRegistry.registerListener( factory ); | ||||
|             } | ||||
|             virtual void registerTest( TestCase const& testInfo ) override { | ||||
|             void registerTest( TestCase const& testInfo ) override { | ||||
|                 m_testCaseRegistry.registerTest( testInfo ); | ||||
|             } | ||||
|             virtual void registerTranslator( const IExceptionTranslator* translator ) override { | ||||
|             void registerTranslator( const IExceptionTranslator* translator ) override { | ||||
|                 m_exceptionTranslatorRegistry.registerTranslator( translator ); | ||||
|             } | ||||
|             virtual void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) override { | ||||
|             void registerTagAlias( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ) override { | ||||
|                 m_tagAliasRegistry.add( alias, tag, lineInfo ); | ||||
|             } | ||||
|             virtual void registerStartupException( std::exception_ptr const& exception ) noexcept override { | ||||
|             void registerStartupException( std::exception_ptr const& exception ) noexcept override { | ||||
|                 m_exceptionRegistry.add(exception); | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -18,9 +18,9 @@ namespace Catch { | ||||
|  | ||||
|     public: | ||||
|  | ||||
|         virtual ~ReporterRegistry() override {} | ||||
|         ~ReporterRegistry() override {} | ||||
|  | ||||
|         virtual IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const override { | ||||
|         IStreamingReporterPtr create( std::string const& name, IConfigPtr const& config ) const override { | ||||
|             FactoryMap::const_iterator it =  m_factories.find( name ); | ||||
|             if( it == m_factories.end() ) | ||||
|                 return nullptr; | ||||
| @@ -34,10 +34,10 @@ namespace Catch { | ||||
|             m_listeners.push_back( factory ); | ||||
|         } | ||||
|  | ||||
|         virtual FactoryMap const& getFactories() const override { | ||||
|         FactoryMap const& getFactories() const override { | ||||
|             return m_factories; | ||||
|         } | ||||
|         virtual Listeners const& getListeners() const override { | ||||
|         Listeners const& getListeners() const override { | ||||
|             return m_listeners; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -50,7 +50,7 @@ namespace Catch { | ||||
|  | ||||
|         void endExpression( DecomposedExpression const& expr ); | ||||
|  | ||||
|         virtual void reconstructExpression( std::string& dest ) const override; | ||||
|         void reconstructExpression( std::string& dest ) const override; | ||||
|  | ||||
|         AssertionResult build() const; | ||||
|         AssertionResult build( DecomposedExpression const& expr ) const; | ||||
|   | ||||
| @@ -31,9 +31,9 @@ namespace Catch { | ||||
|         mutable std::ofstream m_ofs; | ||||
|     public: | ||||
|         FileStream( std::string const& filename ); | ||||
|         virtual ~FileStream() noexcept; | ||||
|         ~FileStream() noexcept override; | ||||
|     public: // IStream | ||||
|         virtual std::ostream& stream() const override; | ||||
|         std::ostream& stream() const override; | ||||
|     }; | ||||
|  | ||||
|  | ||||
| @@ -41,10 +41,10 @@ namespace Catch { | ||||
|         mutable std::ostream m_os; | ||||
|     public: | ||||
|         CoutStream(); | ||||
|         virtual ~CoutStream() noexcept; | ||||
|         ~CoutStream() noexcept override; | ||||
|  | ||||
|     public: // IStream | ||||
|         virtual std::ostream& stream() const override; | ||||
|         std::ostream& stream() const override; | ||||
|     }; | ||||
|  | ||||
|  | ||||
| @@ -53,10 +53,10 @@ namespace Catch { | ||||
|         mutable std::ostream m_os; | ||||
|     public: | ||||
|         DebugOutStream(); | ||||
|         virtual ~DebugOutStream() noexcept; | ||||
|         ~DebugOutStream() noexcept override; | ||||
|  | ||||
|     public: // IStream | ||||
|         virtual std::ostream& stream() const override; | ||||
|         std::ostream& stream() const override; | ||||
|     }; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -16,9 +16,9 @@ namespace Catch { | ||||
|  | ||||
|     class TagAliasRegistry : public ITagAliasRegistry { | ||||
|     public: | ||||
|         virtual ~TagAliasRegistry(); | ||||
|         virtual Option<TagAlias> find( std::string const& alias ) const; | ||||
|         virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const; | ||||
|         ~TagAliasRegistry() override; | ||||
|         Option<TagAlias> find( std::string const& alias ) const override; | ||||
|         std::string expandAliases( std::string const& unexpandedTestSpec ) const override; | ||||
|         void add( std::string const& alias, std::string const& tag, SourceLineInfo const& lineInfo ); | ||||
|  | ||||
|     private: | ||||
|   | ||||
| @@ -96,10 +96,10 @@ namespace Catch { | ||||
|             m_functions.push_back( testCase ); | ||||
|         } | ||||
|  | ||||
|         virtual std::vector<TestCase> const& getAllTests() const { | ||||
|         std::vector<TestCase> const& getAllTests() const override { | ||||
|             return m_functions; | ||||
|         } | ||||
|         virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const { | ||||
|         std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const override { | ||||
|             if( m_sortedFunctions.empty() ) | ||||
|                 enforceNoDuplicateTestCases( m_functions ); | ||||
|  | ||||
|   | ||||
| @@ -113,30 +113,29 @@ namespace TestCaseTracking { | ||||
|  | ||||
|     public: | ||||
|         TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ); | ||||
|         virtual ~TrackerBase() = default; | ||||
|  | ||||
|         virtual NameAndLocation const& nameAndLocation() const override; | ||||
|         virtual bool isComplete() const override; | ||||
|         virtual bool isSuccessfullyCompleted() const override; | ||||
|         virtual bool isOpen() const override; | ||||
|         virtual bool hasChildren() const override; | ||||
|         NameAndLocation const& nameAndLocation() const override; | ||||
|         bool isComplete() const override; | ||||
|         bool isSuccessfullyCompleted() const override; | ||||
|         bool isOpen() const override; | ||||
|         bool hasChildren() const override; | ||||
|  | ||||
|  | ||||
|         virtual void addChild( ITrackerPtr const& child ) override; | ||||
|         void addChild( ITrackerPtr const& child ) override; | ||||
|  | ||||
|         virtual ITrackerPtr findChild( NameAndLocation const& nameAndLocation ) override; | ||||
|         virtual ITracker& parent() override; | ||||
|         ITrackerPtr findChild( NameAndLocation const& nameAndLocation ) override; | ||||
|         ITracker& parent() override; | ||||
|  | ||||
|         virtual void openChild() override; | ||||
|         void openChild() override; | ||||
|  | ||||
|         virtual bool isSectionTracker() const override; | ||||
|         virtual bool isIndexTracker() const override; | ||||
|         bool isSectionTracker() const override; | ||||
|         bool isIndexTracker() const override; | ||||
|  | ||||
|         void open(); | ||||
|  | ||||
|         virtual void close() override; | ||||
|         virtual void fail() override; | ||||
|         virtual void markAsNeedingAnotherRun() override; | ||||
|         void close() override; | ||||
|         void fail() override; | ||||
|         void markAsNeedingAnotherRun() override; | ||||
|  | ||||
|     private: | ||||
|         void moveToParent(); | ||||
| @@ -147,9 +146,8 @@ namespace TestCaseTracking { | ||||
|         std::vector<std::string> m_filters; | ||||
|     public: | ||||
|         SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ); | ||||
|         virtual ~SectionTracker() = default; | ||||
|  | ||||
|         virtual bool isSectionTracker() const override; | ||||
|         bool isSectionTracker() const override; | ||||
|  | ||||
|         static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ); | ||||
|  | ||||
| @@ -164,17 +162,15 @@ namespace TestCaseTracking { | ||||
|         int m_index = -1; | ||||
|     public: | ||||
|         IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size ); | ||||
|         virtual ~IndexTracker() = default; | ||||
|  | ||||
|         virtual bool isIndexTracker() const override; | ||||
|         bool isIndexTracker() const override; | ||||
|         void close() override; | ||||
|  | ||||
|         static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ); | ||||
|  | ||||
|         int index() const; | ||||
|  | ||||
|         void moveNext(); | ||||
|  | ||||
|         virtual void close() override; | ||||
|     }; | ||||
|  | ||||
| } // namespace TestCaseTracking | ||||
|   | ||||
| @@ -21,17 +21,17 @@ namespace Catch { | ||||
|           :   StreamingReporterBase( _config ) | ||||
|         {} | ||||
|  | ||||
|         virtual ~AutomakeReporter(); | ||||
|         ~AutomakeReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results in the format of Automake .trs files"; | ||||
|         } | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& ) override {} | ||||
|         void assertionStarting( AssertionInfo const& ) override {} | ||||
|  | ||||
|         virtual bool assertionEnded( AssertionStats const& /*_assertionStats*/ ) override { return true; } | ||||
|         bool assertionEnded( AssertionStats const& /*_assertionStats*/ ) override { return true; } | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) override { | ||||
|         void testCaseEnded( TestCaseStats const& _testCaseStats ) override { | ||||
|             // Possible values to emit are PASS, XFAIL, SKIP, FAIL, XPASS and ERROR. | ||||
|             stream << ":test-result: "; | ||||
|             if (_testCaseStats.totals.assertions.allPassed()) { | ||||
| @@ -45,7 +45,7 @@ namespace Catch { | ||||
|             StreamingReporterBase::testCaseEnded( _testCaseStats ); | ||||
|         } | ||||
|  | ||||
|         virtual void skipTest( TestCaseInfo const& testInfo ) override { | ||||
|         void skipTest( TestCaseInfo const& testInfo ) override { | ||||
|             stream << ":test-result: SKIP " << testInfo.name << '\n'; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -32,7 +32,7 @@ namespace Catch { | ||||
|             CATCH_ENFORCE( DerivedT::getSupportedVerbosities().count( m_config->verbosity() ), "Verbosity level not supported by this reporter" ); | ||||
|         } | ||||
|  | ||||
|         virtual ReporterPreferences getPreferences() const override { | ||||
|         ReporterPreferences getPreferences() const override { | ||||
|             return m_reporterPrefs; | ||||
|         } | ||||
|  | ||||
| @@ -40,40 +40,40 @@ namespace Catch { | ||||
|             return { Verbosity::Normal }; | ||||
|         } | ||||
|  | ||||
|         virtual ~StreamingReporterBase() override = default; | ||||
|         ~StreamingReporterBase() override = default; | ||||
|  | ||||
|         virtual void noMatchingTestCases(std::string const&) override {} | ||||
|         void noMatchingTestCases(std::string const&) override {} | ||||
|  | ||||
|         virtual void testRunStarting(TestRunInfo const& _testRunInfo) override { | ||||
|         void testRunStarting(TestRunInfo const& _testRunInfo) override { | ||||
|             currentTestRunInfo = _testRunInfo; | ||||
|         } | ||||
|         virtual void testGroupStarting(GroupInfo const& _groupInfo) override { | ||||
|         void testGroupStarting(GroupInfo const& _groupInfo) override { | ||||
|             currentGroupInfo = _groupInfo; | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseStarting(TestCaseInfo const& _testInfo) override  { | ||||
|         void testCaseStarting(TestCaseInfo const& _testInfo) override  { | ||||
|             currentTestCaseInfo = _testInfo; | ||||
|         } | ||||
|         virtual void sectionStarting(SectionInfo const& _sectionInfo) override { | ||||
|         void sectionStarting(SectionInfo const& _sectionInfo) override { | ||||
|             m_sectionStack.push_back(_sectionInfo); | ||||
|         } | ||||
|  | ||||
|         virtual void sectionEnded(SectionStats const& /* _sectionStats */) override { | ||||
|         void sectionEnded(SectionStats const& /* _sectionStats */) override { | ||||
|             m_sectionStack.pop_back(); | ||||
|         } | ||||
|         virtual void testCaseEnded(TestCaseStats const& /* _testCaseStats */) override { | ||||
|         void testCaseEnded(TestCaseStats const& /* _testCaseStats */) override { | ||||
|             currentTestCaseInfo.reset(); | ||||
|         } | ||||
|         virtual void testGroupEnded(TestGroupStats const& /* _testGroupStats */) override { | ||||
|         void testGroupEnded(TestGroupStats const& /* _testGroupStats */) override { | ||||
|             currentGroupInfo.reset(); | ||||
|         } | ||||
|         virtual void testRunEnded(TestRunStats const& /* _testRunStats */) override { | ||||
|         void testRunEnded(TestRunStats const& /* _testRunStats */) override { | ||||
|             currentTestCaseInfo.reset(); | ||||
|             currentGroupInfo.reset(); | ||||
|             currentTestRunInfo.reset(); | ||||
|         } | ||||
|  | ||||
|         virtual void skipTest(TestCaseInfo const&) override { | ||||
|         void skipTest(TestCaseInfo const&) override { | ||||
|             // Don't do anything with this by default. | ||||
|             // It can optionally be overridden in the derived class. | ||||
|         } | ||||
| @@ -144,9 +144,9 @@ namespace Catch { | ||||
|             m_reporterPrefs.shouldRedirectStdOut = false; | ||||
|             CATCH_ENFORCE( DerivedT::getSupportedVerbosities().count( m_config->verbosity() ), "Verbosity level not supported by this reporter" ); | ||||
|         } | ||||
|         virtual ~CumulativeReporterBase() = default; | ||||
|         ~CumulativeReporterBase() override = default; | ||||
|  | ||||
|         virtual ReporterPreferences getPreferences() const override { | ||||
|         ReporterPreferences getPreferences() const override { | ||||
|             return m_reporterPrefs; | ||||
|         } | ||||
|  | ||||
| @@ -154,12 +154,12 @@ namespace Catch { | ||||
|             return { Verbosity::Normal }; | ||||
|         } | ||||
|  | ||||
|         virtual void testRunStarting( TestRunInfo const& ) override {} | ||||
|         virtual void testGroupStarting( GroupInfo const& ) override {} | ||||
|         void testRunStarting( TestRunInfo const& ) override {} | ||||
|         void testGroupStarting( GroupInfo const& ) override {} | ||||
|  | ||||
|         virtual void testCaseStarting( TestCaseInfo const& ) override {} | ||||
|         void testCaseStarting( TestCaseInfo const& ) override {} | ||||
|  | ||||
|         virtual void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|         void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|             SectionStats incompleteStats( sectionInfo, Counts(), 0, false ); | ||||
|             std::shared_ptr<SectionNode> node; | ||||
|             if( m_sectionStack.empty() ) { | ||||
| @@ -184,9 +184,9 @@ namespace Catch { | ||||
|             m_deepestSection = node; | ||||
|         } | ||||
|  | ||||
|         virtual void assertionStarting(AssertionInfo const&) override {} | ||||
|         void assertionStarting(AssertionInfo const&) override {} | ||||
|  | ||||
|         virtual bool assertionEnded(AssertionStats const& assertionStats) override { | ||||
|         bool assertionEnded(AssertionStats const& assertionStats) override { | ||||
|             assert(!m_sectionStack.empty()); | ||||
|             SectionNode& sectionNode = *m_sectionStack.back(); | ||||
|             sectionNode.assertions.push_back(assertionStats); | ||||
| @@ -198,13 +198,13 @@ namespace Catch { | ||||
|             prepareExpandedExpression(sectionNode.assertions.back().assertionResult); | ||||
|             return true; | ||||
|         } | ||||
|         virtual void sectionEnded(SectionStats const& sectionStats) override { | ||||
|         void sectionEnded(SectionStats const& sectionStats) override { | ||||
|             assert(!m_sectionStack.empty()); | ||||
|             SectionNode& node = *m_sectionStack.back(); | ||||
|             node.stats = sectionStats; | ||||
|             m_sectionStack.pop_back(); | ||||
|         } | ||||
|         virtual void testCaseEnded(TestCaseStats const& testCaseStats) override { | ||||
|         void testCaseEnded(TestCaseStats const& testCaseStats) override { | ||||
|             auto node = std::make_shared<TestCaseNode>(testCaseStats); | ||||
|             assert(m_sectionStack.size() == 0); | ||||
|             node->children.push_back(m_rootSection); | ||||
| @@ -215,12 +215,12 @@ namespace Catch { | ||||
|             m_deepestSection->stdOut = testCaseStats.stdOut; | ||||
|             m_deepestSection->stdErr = testCaseStats.stdErr; | ||||
|         } | ||||
|         virtual void testGroupEnded(TestGroupStats const& testGroupStats) override { | ||||
|         void testGroupEnded(TestGroupStats const& testGroupStats) override { | ||||
|             auto node = std::make_shared<TestGroupNode>(testGroupStats); | ||||
|             node->children.swap(m_testCases); | ||||
|             m_testGroups.push_back(node); | ||||
|         } | ||||
|         virtual void testRunEnded(TestRunStats const& testRunStats) override { | ||||
|         void testRunEnded(TestRunStats const& testRunStats) override { | ||||
|             auto node = std::make_shared<TestRunNode>(testRunStats); | ||||
|             node->children.swap(m_testGroups); | ||||
|             m_testRuns.push_back(node); | ||||
| @@ -228,9 +228,9 @@ namespace Catch { | ||||
|         } | ||||
|         virtual void testRunEndedCumulative() = 0; | ||||
|  | ||||
|         virtual void skipTest(TestCaseInfo const&) override {} | ||||
|         void skipTest(TestCaseInfo const&) override {} | ||||
|  | ||||
|         virtual void prepareExpandedExpression(AssertionResult& result) const { | ||||
|         void prepareExpandedExpression(AssertionResult& result) const { | ||||
|             if (result.isOk()) | ||||
|                 result.discardDecomposedExpression(); | ||||
|             else | ||||
| @@ -266,8 +266,8 @@ namespace Catch { | ||||
|     struct TestEventListenerBase : StreamingReporterBase<TestEventListenerBase> { | ||||
|         TestEventListenerBase( ReporterConfig const& _config ); | ||||
|  | ||||
|         virtual void assertionStarting(AssertionInfo const&) override; | ||||
|         virtual bool assertionEnded(AssertionStats const&) override; | ||||
|         void assertionStarting(AssertionInfo const&) override; | ||||
|         bool assertionEnded(AssertionStats const&) override; | ||||
|     }; | ||||
|  | ||||
| } // end namespace Catch | ||||
|   | ||||
| @@ -17,7 +17,7 @@ namespace Catch { | ||||
|  | ||||
|         using StreamingReporterBase::StreamingReporterBase; | ||||
|  | ||||
|         virtual ~CompactReporter(); | ||||
|         ~CompactReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results on a single line, suitable for IDEs"; | ||||
| @@ -54,7 +54,7 @@ namespace Catch { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         virtual void sectionEnded(SectionStats const& _sectionStats) override { | ||||
|         void sectionEnded(SectionStats const& _sectionStats) override { | ||||
|             if (m_config->showDurations() == ShowDurations::Always) { | ||||
|                 stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; | ||||
|             } | ||||
| @@ -73,7 +73,6 @@ namespace Catch { | ||||
|             AssertionPrinter( AssertionPrinter const& ) = delete; | ||||
|             AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) | ||||
|             : stream( _stream ) | ||||
|             , stats( _stats ) | ||||
|             , result( _stats.assertionResult ) | ||||
|             , messages( _stats.infoMessages ) | ||||
|             , itMessage( _stats.infoMessages.begin() ) | ||||
| @@ -241,7 +240,6 @@ namespace Catch { | ||||
|  | ||||
|         private: | ||||
|             std::ostream& stream; | ||||
|             AssertionStats const& stats; | ||||
|             AssertionResult const& result; | ||||
|             std::vector<MessageInfo> messages; | ||||
|             std::vector<MessageInfo>::const_iterator itMessage; | ||||
|   | ||||
| @@ -22,19 +22,18 @@ namespace Catch { | ||||
|         using StreamingReporterBase::StreamingReporterBase; | ||||
|  | ||||
|  | ||||
|         virtual ~ConsoleReporter() override; | ||||
|         ~ConsoleReporter() override; | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results as plain lines of text"; | ||||
|         } | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& spec ) override { | ||||
|         void noMatchingTestCases( std::string const& spec ) override { | ||||
|             stream << "No test cases matched '" << spec << '\'' << std::endl; | ||||
|         } | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& ) override { | ||||
|         } | ||||
|         void assertionStarting( AssertionInfo const& ) override {} | ||||
|  | ||||
|         virtual bool assertionEnded( AssertionStats const& _assertionStats ) override { | ||||
|         bool assertionEnded( AssertionStats const& _assertionStats ) override { | ||||
|             AssertionResult const& result = _assertionStats.assertionResult; | ||||
|  | ||||
|             bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); | ||||
| @@ -51,11 +50,11 @@ namespace Catch { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         virtual void sectionStarting( SectionInfo const& _sectionInfo ) override { | ||||
|         void sectionStarting( SectionInfo const& _sectionInfo ) override { | ||||
|             m_headerPrinted = false; | ||||
|             StreamingReporterBase::sectionStarting( _sectionInfo ); | ||||
|         } | ||||
|         virtual void sectionEnded( SectionStats const& _sectionStats ) override { | ||||
|         void sectionEnded( SectionStats const& _sectionStats ) override { | ||||
|             if( _sectionStats.missingAssertions ) { | ||||
|                 lazyPrint(); | ||||
|                 Colour colour( Colour::ResultError ); | ||||
| @@ -74,11 +73,11 @@ namespace Catch { | ||||
|             StreamingReporterBase::sectionEnded( _sectionStats ); | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) override { | ||||
|         void testCaseEnded( TestCaseStats const& _testCaseStats ) override { | ||||
|             StreamingReporterBase::testCaseEnded( _testCaseStats ); | ||||
|             m_headerPrinted = false; | ||||
|         } | ||||
|         virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) override { | ||||
|         void testGroupEnded( TestGroupStats const& _testGroupStats ) override { | ||||
|             if( currentGroupInfo.used ) { | ||||
|                 printSummaryDivider(); | ||||
|                 stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n"; | ||||
| @@ -87,7 +86,7 @@ namespace Catch { | ||||
|             } | ||||
|             StreamingReporterBase::testGroupEnded( _testGroupStats ); | ||||
|         } | ||||
|         virtual void testRunEnded( TestRunStats const& _testRunStats ) override { | ||||
|         void testRunEnded( TestRunStats const& _testRunStats ) override { | ||||
|             printTotalsDivider( _testRunStats.totals ); | ||||
|             printTotals( _testRunStats.totals ); | ||||
|             stream << std::endl; | ||||
|   | ||||
| @@ -57,20 +57,20 @@ namespace Catch { | ||||
|             m_reporterPrefs.shouldRedirectStdOut = true; | ||||
|         } | ||||
|  | ||||
|         virtual ~JunitReporter() override; | ||||
|         ~JunitReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results in an XML format that looks like Ant's junitreport target"; | ||||
|         } | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& /*spec*/ ) override {} | ||||
|         void noMatchingTestCases( std::string const& /*spec*/ ) override {} | ||||
|  | ||||
|         virtual void testRunStarting( TestRunInfo const& runInfo ) override { | ||||
|         void testRunStarting( TestRunInfo const& runInfo ) override { | ||||
|             CumulativeReporterBase::testRunStarting( runInfo ); | ||||
|             xml.startElement( "testsuites" ); | ||||
|         } | ||||
|  | ||||
|         virtual void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|         void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|             suiteTimer.start(); | ||||
|             stdOutForSuite.str(""); | ||||
|             stdErrForSuite.str(""); | ||||
| @@ -78,28 +78,28 @@ namespace Catch { | ||||
|             CumulativeReporterBase::testGroupStarting( groupInfo ); | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseStarting( TestCaseInfo const& testCaseInfo ) override { | ||||
|         void testCaseStarting( TestCaseInfo const& testCaseInfo ) override { | ||||
|             m_okToFail = testCaseInfo.okToFail(); | ||||
|         } | ||||
|         virtual bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|         bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|             if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException && !m_okToFail ) | ||||
|                 unexpectedExceptions++; | ||||
|             return CumulativeReporterBase::assertionEnded( assertionStats ); | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|         void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|             stdOutForSuite << testCaseStats.stdOut; | ||||
|             stdErrForSuite << testCaseStats.stdErr; | ||||
|             CumulativeReporterBase::testCaseEnded( testCaseStats ); | ||||
|         } | ||||
|  | ||||
|         virtual void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|         void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|             double suiteTime = suiteTimer.getElapsedSeconds(); | ||||
|             CumulativeReporterBase::testGroupEnded( testGroupStats ); | ||||
|             writeGroup( *m_testGroups.back(), suiteTime ); | ||||
|         } | ||||
|  | ||||
|         virtual void testRunEndedCumulative() override { | ||||
|         void testRunEndedCumulative() override { | ||||
|             xml.endElement(); | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -18,40 +18,27 @@ namespace Catch { | ||||
|  | ||||
|     public: // IStreamingReporter | ||||
|  | ||||
|         virtual ReporterPreferences getPreferences() const override; | ||||
|         ReporterPreferences getPreferences() const override; | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& spec ) override; | ||||
|         void noMatchingTestCases( std::string const& spec ) override; | ||||
|  | ||||
|     static std::set<Verbosity> getSupportedVerbosities(); | ||||
|  | ||||
|         virtual void testRunStarting( TestRunInfo const& testRunInfo ) override; | ||||
|  | ||||
|         virtual void testGroupStarting( GroupInfo const& groupInfo ) override; | ||||
|  | ||||
|  | ||||
|         virtual void testCaseStarting( TestCaseInfo const& testInfo ) override; | ||||
|  | ||||
|         virtual void sectionStarting( SectionInfo const& sectionInfo ) override; | ||||
|  | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& assertionInfo ) override; | ||||
|  | ||||
|         void testRunStarting( TestRunInfo const& testRunInfo ) override; | ||||
|         void testGroupStarting( GroupInfo const& groupInfo ) override; | ||||
|         void testCaseStarting( TestCaseInfo const& testInfo ) override; | ||||
|         void sectionStarting( SectionInfo const& sectionInfo ) override; | ||||
|         void assertionStarting( AssertionInfo const& assertionInfo ) override; | ||||
|  | ||||
|         // The return value indicates if the messages buffer should be cleared: | ||||
|         virtual bool assertionEnded( AssertionStats const& assertionStats ) override; | ||||
|         bool assertionEnded( AssertionStats const& assertionStats ) override; | ||||
|         void sectionEnded( SectionStats const& sectionStats ) override; | ||||
|         void testCaseEnded( TestCaseStats const& testCaseStats ) override; | ||||
|         void testGroupEnded( TestGroupStats const& testGroupStats ) override; | ||||
|         void testRunEnded( TestRunStats const& testRunStats ) override; | ||||
|  | ||||
|         virtual void sectionEnded( SectionStats const& sectionStats ) override; | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& testCaseStats ) override; | ||||
|  | ||||
|         virtual void testGroupEnded( TestGroupStats const& testGroupStats ) override; | ||||
|  | ||||
|         virtual void testRunEnded( TestRunStats const& testRunStats ) override; | ||||
|  | ||||
|  | ||||
|         virtual void skipTest( TestCaseInfo const& testInfo ) override; | ||||
|  | ||||
|         virtual bool isMulti() const override; | ||||
|         void skipTest( TestCaseInfo const& testInfo ) override; | ||||
|         bool isMulti() const override; | ||||
|  | ||||
|     }; | ||||
|  | ||||
|   | ||||
| @@ -23,25 +23,25 @@ namespace Catch { | ||||
|  | ||||
|         using StreamingReporterBase::StreamingReporterBase; | ||||
|  | ||||
|         virtual ~TAPReporter(); | ||||
|         ~TAPReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results in TAP format, suitable for test harneses"; | ||||
|         } | ||||
|  | ||||
|         virtual ReporterPreferences getPreferences() const { | ||||
|         ReporterPreferences getPreferences() const override { | ||||
|             ReporterPreferences prefs; | ||||
|             prefs.shouldRedirectStdOut = false; | ||||
|             return prefs; | ||||
|         } | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& spec ) { | ||||
|         void noMatchingTestCases( std::string const& spec ) override { | ||||
|             stream << "# No test cases matched '" << spec << "'" << std::endl; | ||||
|         } | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& ) {} | ||||
|         void assertionStarting( AssertionInfo const& ) override {} | ||||
|  | ||||
|         virtual bool assertionEnded( AssertionStats const& _assertionStats ) { | ||||
|         bool assertionEnded( AssertionStats const& _assertionStats ) override { | ||||
|             ++counter; | ||||
|  | ||||
|             AssertionPrinter printer( stream, _assertionStats, counter ); | ||||
| @@ -52,7 +52,7 @@ namespace Catch { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         virtual void testRunEnded( TestRunStats const& _testRunStats ) { | ||||
|         void testRunEnded( TestRunStats const& _testRunStats ) override { | ||||
|             printTotals( _testRunStats.totals ); | ||||
|             stream << "\n" << std::endl; | ||||
|             StreamingReporterBase::testRunEnded( _testRunStats ); | ||||
| @@ -66,7 +66,6 @@ namespace Catch { | ||||
|             AssertionPrinter( AssertionPrinter const& ) = delete; | ||||
|             AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, size_t counter ) | ||||
|             : stream( _stream ) | ||||
|             , stats( _stats ) | ||||
|             , result( _stats.assertionResult ) | ||||
|             , messages( _stats.infoMessages ) | ||||
|             , itMessage( _stats.infoMessages.begin() ) | ||||
| @@ -229,7 +228,6 @@ namespace Catch { | ||||
|  | ||||
|         private: | ||||
|             std::ostream& stream; | ||||
|             AssertionStats const& stats; | ||||
|             AssertionResult const& result; | ||||
|             std::vector<MessageInfo> messages; | ||||
|             std::vector<MessageInfo>::const_iterator itMessage; | ||||
|   | ||||
| @@ -42,33 +42,32 @@ namespace Catch { | ||||
|             replaceInPlace( escaped, "]", "|]" ); | ||||
|             return escaped; | ||||
|         } | ||||
|         virtual ~TeamCityReporter() override; | ||||
|         ~TeamCityReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results as TeamCity service messages"; | ||||
|         } | ||||
|  | ||||
|         virtual void skipTest( TestCaseInfo const& /* testInfo */ ) override { | ||||
|         void skipTest( TestCaseInfo const& /* testInfo */ ) override { | ||||
|         } | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& /* spec */ ) override {} | ||||
|         void noMatchingTestCases( std::string const& /* spec */ ) override {} | ||||
|  | ||||
|         virtual void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|         void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|             StreamingReporterBase::testGroupStarting( groupInfo ); | ||||
|             stream << "##teamcity[testSuiteStarted name='" | ||||
|                 << escape( groupInfo.name ) << "']\n"; | ||||
|         } | ||||
|         virtual void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|         void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|             StreamingReporterBase::testGroupEnded( testGroupStats ); | ||||
|             stream << "##teamcity[testSuiteFinished name='" | ||||
|                 << escape( testGroupStats.groupInfo.name ) << "']\n"; | ||||
|         } | ||||
|  | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& ) override { | ||||
|         } | ||||
|         void assertionStarting( AssertionInfo const& ) override {} | ||||
|  | ||||
|         virtual bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|         bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|             AssertionResult const& result = assertionStats.assertionResult; | ||||
|             if( !result.isOk() ) { | ||||
|  | ||||
| @@ -139,19 +138,19 @@ namespace Catch { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         virtual void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|         void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|             m_headerPrintedForThisSection = false; | ||||
|             StreamingReporterBase::sectionStarting( sectionInfo ); | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseStarting( TestCaseInfo const& testInfo ) override { | ||||
|         void testCaseStarting( TestCaseInfo const& testInfo ) override { | ||||
|             m_testTimer.start(); | ||||
|             StreamingReporterBase::testCaseStarting( testInfo ); | ||||
|             stream << "##teamcity[testStarted name='" | ||||
|                 << escape( testInfo.name ) << "']\n"; | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|         void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|             StreamingReporterBase::testCaseEnded( testCaseStats ); | ||||
|             if( !testCaseStats.stdOut.empty() ) | ||||
|                 stream << "##teamcity[testStdOut name='" | ||||
|   | ||||
| @@ -23,7 +23,7 @@ namespace Catch { | ||||
|             m_reporterPrefs.shouldRedirectStdOut = true; | ||||
|         } | ||||
|  | ||||
|         virtual ~XmlReporter() override; | ||||
|         ~XmlReporter() override; | ||||
|  | ||||
|         static std::string getDescription() { | ||||
|             return "Reports test results as an XML document"; | ||||
| @@ -41,11 +41,11 @@ namespace Catch { | ||||
|  | ||||
|     public: // StreamingReporterBase | ||||
|  | ||||
|         virtual void noMatchingTestCases( std::string const& s ) override { | ||||
|         void noMatchingTestCases( std::string const& s ) override { | ||||
|             StreamingReporterBase::noMatchingTestCases( s ); | ||||
|         } | ||||
|  | ||||
|         virtual void testRunStarting( TestRunInfo const& testInfo ) override { | ||||
|         void testRunStarting( TestRunInfo const& testInfo ) override { | ||||
|             StreamingReporterBase::testRunStarting( testInfo ); | ||||
|             std::string stylesheetRef = getStylesheetRef(); | ||||
|             if( !stylesheetRef.empty() ) | ||||
| @@ -55,13 +55,13 @@ namespace Catch { | ||||
|                 m_xml.writeAttribute( "name", m_config->name() ); | ||||
|         } | ||||
|  | ||||
|         virtual void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|         void testGroupStarting( GroupInfo const& groupInfo ) override { | ||||
|             StreamingReporterBase::testGroupStarting( groupInfo ); | ||||
|             m_xml.startElement( "Group" ) | ||||
|                 .writeAttribute( "name", groupInfo.name ); | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseStarting( TestCaseInfo const& testInfo ) override { | ||||
|         void testCaseStarting( TestCaseInfo const& testInfo ) override { | ||||
|             StreamingReporterBase::testCaseStarting(testInfo); | ||||
|             m_xml.startElement( "TestCase" ) | ||||
|                 .writeAttribute( "name", trim( testInfo.name ) ) | ||||
| @@ -75,7 +75,7 @@ namespace Catch { | ||||
|             m_xml.ensureTagClosed(); | ||||
|         } | ||||
|  | ||||
|         virtual void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|         void sectionStarting( SectionInfo const& sectionInfo ) override { | ||||
|             StreamingReporterBase::sectionStarting( sectionInfo ); | ||||
|             if( m_sectionDepth++ > 0 ) { | ||||
|                 m_xml.startElement( "Section" ) | ||||
| @@ -86,9 +86,9 @@ namespace Catch { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         virtual void assertionStarting( AssertionInfo const& ) override { } | ||||
|         void assertionStarting( AssertionInfo const& ) override { } | ||||
|  | ||||
|         virtual bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|         bool assertionEnded( AssertionStats const& assertionStats ) override { | ||||
|  | ||||
|             AssertionResult const& result = assertionStats.assertionResult; | ||||
|  | ||||
| @@ -163,7 +163,7 @@ namespace Catch { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         virtual void sectionEnded( SectionStats const& sectionStats ) override { | ||||
|         void sectionEnded( SectionStats const& sectionStats ) override { | ||||
|             StreamingReporterBase::sectionEnded( sectionStats ); | ||||
|             if( --m_sectionDepth > 0 ) { | ||||
|                 XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" ); | ||||
| @@ -178,7 +178,7 @@ namespace Catch { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         virtual void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|         void testCaseEnded( TestCaseStats const& testCaseStats ) override { | ||||
|             StreamingReporterBase::testCaseEnded( testCaseStats ); | ||||
|             XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" ); | ||||
|             e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() ); | ||||
| @@ -194,7 +194,7 @@ namespace Catch { | ||||
|             m_xml.endElement(); | ||||
|         } | ||||
|  | ||||
|         virtual void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|         void testGroupEnded( TestGroupStats const& testGroupStats ) override { | ||||
|             StreamingReporterBase::testGroupEnded( testGroupStats ); | ||||
|             // TODO: Check testGroupStats.aborting and act accordingly. | ||||
|             m_xml.scopedElement( "OverallResults" ) | ||||
| @@ -204,7 +204,7 @@ namespace Catch { | ||||
|             m_xml.endElement(); | ||||
|         } | ||||
|  | ||||
|         virtual void testRunEnded( TestRunStats const& testRunStats ) override { | ||||
|         void testRunEnded( TestRunStats const& testRunStats ) override { | ||||
|             StreamingReporterBase::testRunEnded( testRunStats ); | ||||
|             m_xml.scopedElement( "OverallResults" ) | ||||
|                 .writeAttribute( "successes", testRunStats.totals.assertions.passed ) | ||||
|   | ||||
| @@ -192,11 +192,11 @@ class ExceptionMatcher : public Catch::MatcherBase<SpecialException> { | ||||
|     int m_expected; | ||||
| public: | ||||
|     ExceptionMatcher(int i):m_expected(i) {} | ||||
|     virtual bool match(SpecialException const& se) const override { | ||||
|     bool match(SpecialException const& se) const override { | ||||
|         return se.i == m_expected; | ||||
|     } | ||||
|  | ||||
|     virtual std::string describe() const override { | ||||
|     std::string describe() const override { | ||||
|         std::ostringstream ss; | ||||
|         ss << "special exception has value of " << m_expected; | ||||
|         return ss.str(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash