Store IStream instance owning ptrs in reporter instances

This ended up being a surprisingly large refactoring, motivated
by removing a `const_cast` from `Config`'s handling of reporter
streams, forced by previous commit.
This commit is contained in:
Martin Hořeňovský
2022-04-12 21:22:43 +02:00
parent 4f09f1120b
commit 79d1e82381
38 changed files with 124 additions and 109 deletions

View File

@@ -20,12 +20,13 @@
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include <iostream>
#include <utility>
class CumulativeBenchmarkReporter final : public Catch::CumulativeReporterBase {
public:
CumulativeBenchmarkReporter(Catch::ReporterConfig const& _config) :
CumulativeReporterBase(_config) {
CumulativeBenchmarkReporter(Catch::ReporterConfig&& _config) :
CumulativeReporterBase(std::move(_config)) {
m_preferences.shouldReportAllAssertions = true;
}

View File

@@ -19,11 +19,12 @@
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include <iostream>
#include <utility>
class TestReporter : public Catch::StreamingReporterBase {
public:
TestReporter(Catch::ReporterConfig const& _config):
StreamingReporterBase(_config) {
TestReporter(Catch::ReporterConfig&& _config):
StreamingReporterBase(std::move(_config)) {
std::cout << "TestReporter constructed\n";
}

View File

@@ -16,13 +16,14 @@
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include <iostream>
#include <utility>
namespace {
class TestReporter : public Catch::StreamingReporterBase {
public:
TestReporter(Catch::ReporterConfig const& _config):
StreamingReporterBase(_config) {
TestReporter(Catch::ReporterConfig&& _config):
StreamingReporterBase(std::move(_config)) {
m_preferences.shouldReportAllAssertions = false;
std::cout << "X26 - TestReporter constructed\n";
}

View File

@@ -26,6 +26,7 @@
#include <iostream>
#include <string>
#include <utility>
class TestReporter : public Catch::StreamingReporterBase {
std::string stdOutString( uint64_t iter ){
@@ -36,8 +37,8 @@ class TestReporter : public Catch::StreamingReporterBase {
}
public:
TestReporter( Catch::ReporterConfig const& _config ):
StreamingReporterBase( _config ) {
TestReporter( Catch::ReporterConfig&& _config ):
StreamingReporterBase( std::move(_config) ) {
m_preferences.shouldRedirectStdOut = true;
std::cout << "X27 - TestReporter constructed\n";
}

View File

@@ -19,7 +19,9 @@
#include <catch2/reporters/catch_reporter_event_listener.hpp>
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include <catch2/reporters/catch_reporter_streaming_base.hpp>
#include <iostream>
#include <utility>
namespace {
@@ -54,8 +56,8 @@ namespace {
class TestReporter : public Catch::StreamingReporterBase {
public:
TestReporter( Catch::ReporterConfig const& _config ):
StreamingReporterBase( _config ) {
TestReporter( Catch::ReporterConfig&& _config ):
StreamingReporterBase( std::move(_config) ) {
std::cout << "X28 - TestReporter constructed\n";
}

View File

@@ -25,8 +25,8 @@
class TestReporter : public Catch::StreamingReporterBase {
public:
TestReporter( Catch::ReporterConfig const& _config ):
StreamingReporterBase( _config ) {
TestReporter( Catch::ReporterConfig&& _config ):
StreamingReporterBase( std::move(_config) ) {
std::cout << "X29 - TestReporter constructed\n";
}