1
0
mirror of https://github.com/catchorg/Catch2.git synced 2025-01-15 22:58:02 +00:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Martin Hořeňovský
a15ffb735d
Make ListeningReporter final
In general, for Catch2 v3 we are making virtual types `final`,
unless they were explicitly designed to be derived-from.
`ListeningReporter` is definitely not designed to be derived-from.
2020-03-09 21:15:30 +01:00
Martin Hořeňovský
727b26ab35
Remove IStreamingReporter::isMulti query
This was previously used to avoid `dynamic_cast` inside our code,
when we were creating more than one reporter, or a reporter
together with listeners. However, since then the offending code
was refactored to be smarter instead, and this query member function
is no longer needed nor used.
2020-03-09 21:07:32 +01:00
5 changed files with 6 additions and 9 deletions

View File

@ -56,11 +56,16 @@
* Lvalues of composed matchers cannot be composed further
* Uses of `REGISTER_TEST_CASE` macro need to be followed by a semicolon
* This does not change `TEST_CASE` and friends in any way
* `IStreamingReporter::IsMulti` member function was removed
* This is _very_ unlikely to actually affect anyone, as it was default-implemented in the interface, and only used internally
* `ListeningReporter` is now final
### Fixes
* The `INFO` macro no longer contains superfluous semicolon (#1456)
* The `--list*` family of command line flags now return 0 on success (#1410, #1146)
### Other changes
* `CATCH_CONFIG_DISABLE_MATCHERS` no longer exists.
* If you do not want to use Matchers in a TU, do not include their header.

View File

@ -112,7 +112,6 @@ namespace Catch {
TestRunStats::~TestRunStats() = default;
void IStreamingReporter::fatalErrorEncountered( StringRef ) {}
bool IStreamingReporter::isMulti() const { return false; }
void IStreamingReporter::listReporters(std::vector<ReporterDescription> const& descriptions, Config const& config) {
Catch::cout() << "Available reporters:\n";

View File

@ -241,8 +241,6 @@ namespace Catch {
// Default empty implementation provided
virtual void fatalErrorEncountered( StringRef name );
virtual bool isMulti() const;
// Listing support
virtual void listReporters(std::vector<ReporterDescription> const& descriptions, Config const& config);
virtual void listTests(std::vector<TestCaseHandle> const& tests, Config const& config);

View File

@ -150,10 +150,6 @@ namespace Catch {
m_reporter->skipTest( testInfo );
}
bool ListeningReporter::isMulti() const {
return true;
}
void ListeningReporter::listReporters(std::vector<ReporterDescription> const& descriptions, Config const& config) {
for (auto const& listener : m_listeners) {
listener->listReporters(descriptions, config);

View File

@ -11,7 +11,7 @@
namespace Catch {
class ListeningReporter : public IStreamingReporter {
class ListeningReporter final : public IStreamingReporter {
using Reporters = std::vector<IStreamingReporterPtr>;
Reporters m_listeners;
IStreamingReporterPtr m_reporter = nullptr;
@ -50,7 +50,6 @@ namespace Catch {
void testRunEnded( TestRunStats const& testRunStats ) override;
void skipTest( TestCaseInfo const& testInfo ) override;
bool isMulti() const override;
void listReporters(std::vector<ReporterDescription> const& descriptions, Config const& config) override;
void listTests(std::vector<TestCaseHandle> const& tests, Config const& config) override;