123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /*
- * Created by Phil on 07/01/2011.
- * Copyright 2011 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_INTERFACES_CAPTURE_H_INCLUDED
- #define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
- #include <string>
- #include <chrono>
- #include "catch_stringref.h"
- #include "catch_result_type.h"
- namespace Catch {
- class AssertionResult;
- struct AssertionInfo;
- struct SectionInfo;
- struct SectionEndInfo;
- struct MessageInfo;
- struct MessageBuilder;
- struct Counts;
- struct AssertionReaction;
- struct SourceLineInfo;
- struct ITransientExpression;
- struct IGeneratorTracker;
- #if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
- struct BenchmarkInfo;
- template <typename Duration = std::chrono::duration<double, std::nano>>
- struct BenchmarkStats;
- #endif // CATCH_CONFIG_ENABLE_BENCHMARKING
- struct IResultCapture {
- virtual ~IResultCapture();
- virtual bool sectionStarted( SectionInfo const& sectionInfo,
- Counts& assertions ) = 0;
- virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
- virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
- virtual auto acquireGeneratorTracker( StringRef generatorName, SourceLineInfo const& lineInfo ) -> IGeneratorTracker& = 0;
- #if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
- virtual void benchmarkPreparing( std::string const& name ) = 0;
- virtual void benchmarkStarting( BenchmarkInfo const& info ) = 0;
- virtual void benchmarkEnded( BenchmarkStats<> const& stats ) = 0;
- virtual void benchmarkFailed( std::string const& error ) = 0;
- #endif // CATCH_CONFIG_ENABLE_BENCHMARKING
- virtual void pushScopedMessage( MessageInfo const& message ) = 0;
- virtual void popScopedMessage( MessageInfo const& message ) = 0;
- virtual void emplaceUnscopedMessage( MessageBuilder const& builder ) = 0;
- virtual void handleFatalErrorCondition( StringRef message ) = 0;
- virtual void handleExpr
- ( AssertionInfo const& info,
- ITransientExpression const& expr,
- AssertionReaction& reaction ) = 0;
- virtual void handleMessage
- ( AssertionInfo const& info,
- ResultWas::OfType resultType,
- StringRef const& message,
- AssertionReaction& reaction ) = 0;
- virtual void handleUnexpectedExceptionNotThrown
- ( AssertionInfo const& info,
- AssertionReaction& reaction ) = 0;
- virtual void handleUnexpectedInflightException
- ( AssertionInfo const& info,
- std::string const& message,
- AssertionReaction& reaction ) = 0;
- virtual void handleIncomplete
- ( AssertionInfo const& info ) = 0;
- virtual void handleNonExpr
- ( AssertionInfo const &info,
- ResultWas::OfType resultType,
- AssertionReaction &reaction ) = 0;
- virtual bool lastAssertionPassed() = 0;
- virtual void assertionPassed() = 0;
- // Deprecated, do not use:
- virtual std::string getCurrentTestName() const = 0;
- virtual const AssertionResult* getLastResult() const = 0;
- virtual void exceptionEarlyReported() = 0;
- };
- IResultCapture& getResultCapture();
- }
- #endif // TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
|