2017-07-19 10:13:47 +02:00
|
|
|
/*
|
|
|
|
* Created by Martin on 19/07/2017.
|
|
|
|
*
|
|
|
|
* 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)
|
|
|
|
*/
|
2017-09-19 15:59:12 +02:00
|
|
|
#ifndef TWOBLUECUBES_CATCH_MULTI_REPORTER_H_INCLUDED
|
|
|
|
#define TWOBLUECUBES_CATCH_MULTI_REPORTER_H_INCLUDED
|
2017-07-19 10:13:47 +02:00
|
|
|
|
|
|
|
#include "../internal/catch_interfaces_reporter.h"
|
|
|
|
|
|
|
|
namespace Catch {
|
|
|
|
|
2018-04-07 11:42:24 +02:00
|
|
|
class ListeningReporter : public IStreamingReporter {
|
2017-07-27 12:24:21 +02:00
|
|
|
using Reporters = std::vector<IStreamingReporterPtr>;
|
2018-04-07 11:42:24 +02:00
|
|
|
Reporters m_listeners;
|
|
|
|
IStreamingReporterPtr m_reporter = nullptr;
|
2018-07-22 22:57:34 +02:00
|
|
|
ReporterPreferences m_preferences;
|
2017-07-19 10:13:47 +02:00
|
|
|
|
|
|
|
public:
|
2018-07-22 22:57:34 +02:00
|
|
|
ListeningReporter();
|
|
|
|
|
2018-04-07 11:42:24 +02:00
|
|
|
void addListener( IStreamingReporterPtr&& listener );
|
|
|
|
void addReporter( IStreamingReporterPtr&& reporter );
|
2017-07-19 10:13:47 +02:00
|
|
|
|
|
|
|
public: // IStreamingReporter
|
|
|
|
|
2017-07-20 16:57:17 +02:00
|
|
|
ReporterPreferences getPreferences() const override;
|
2017-07-19 10:13:47 +02:00
|
|
|
|
2017-07-20 16:57:17 +02:00
|
|
|
void noMatchingTestCases( std::string const& spec ) override;
|
2019-06-17 14:43:10 +02:00
|
|
|
|
2019-10-19 15:50:46 +02:00
|
|
|
void reportInvalidArguments(std::string const&arg) override;
|
2017-07-19 10:13:47 +02:00
|
|
|
|
2019-05-19 20:54:44 +02:00
|
|
|
#if defined(CATCH_CONFIG_ENABLE_BENCHMARKING)
|
2019-04-23 23:41:13 +02:00
|
|
|
void benchmarkPreparing(std::string const& name) override;
|
2017-09-21 10:32:46 +02:00
|
|
|
void benchmarkStarting( BenchmarkInfo const& benchmarkInfo ) override;
|
2019-04-23 23:41:13 +02:00
|
|
|
void benchmarkEnded( BenchmarkStats<> const& benchmarkStats ) override;
|
|
|
|
void benchmarkFailed(std::string const&) override;
|
2019-05-19 20:54:44 +02:00
|
|
|
#endif // CATCH_CONFIG_ENABLE_BENCHMARKING
|
2017-09-21 10:32:46 +02:00
|
|
|
|
2017-07-20 16:57:17 +02:00
|
|
|
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;
|
2017-07-19 10:13:47 +02:00
|
|
|
|
|
|
|
// The return value indicates if the messages buffer should be cleared:
|
2017-07-20 16:57:17 +02:00
|
|
|
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;
|
|
|
|
|
|
|
|
void skipTest( TestCaseInfo const& testInfo ) override;
|
|
|
|
bool isMulti() const override;
|
2017-07-19 10:13:47 +02:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace Catch
|
2017-09-19 15:59:12 +02:00
|
|
|
|
2019-10-19 15:50:46 +02:00
|
|
|
#endif // TWOBLUECUBES_CATCH_MULTI_REPORTER_H_INCLUDED
|