mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 05:59:32 +01:00 
			
		
		
		
	Remove superfluous IConfig argument from IStreamingReporter::list*
The previous commit made it so that the `IConfig` is stored in `IStreamingReporter` and thus always available.
This commit is contained in:
		@@ -127,14 +127,14 @@ namespace Catch {
 | 
			
		||||
 | 
			
		||||
    void IStreamingReporter::fatalErrorEncountered( StringRef ) {}
 | 
			
		||||
 | 
			
		||||
    void IStreamingReporter::listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const& config) {
 | 
			
		||||
    void IStreamingReporter::listReporters(std::vector<ReporterDescription> const& descriptions) {
 | 
			
		||||
        Catch::cout() << "Available reporters:\n";
 | 
			
		||||
        const auto maxNameLen = std::max_element(descriptions.begin(), descriptions.end(),
 | 
			
		||||
            [](ReporterDescription const& lhs, ReporterDescription const& rhs) { return lhs.name.size() < rhs.name.size(); })
 | 
			
		||||
            ->name.size();
 | 
			
		||||
 | 
			
		||||
        for (auto const& desc : descriptions) {
 | 
			
		||||
            if (config.verbosity() == Verbosity::Quiet) {
 | 
			
		||||
            if (m_config->verbosity() == Verbosity::Quiet) {
 | 
			
		||||
                Catch::cout()
 | 
			
		||||
                    << TextFlow::Column(desc.name)
 | 
			
		||||
                    .indent(2)
 | 
			
		||||
@@ -154,16 +154,16 @@ namespace Catch {
 | 
			
		||||
        Catch::cout() << std::endl;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void IStreamingReporter::listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) {
 | 
			
		||||
    void IStreamingReporter::listTests(std::vector<TestCaseHandle> const& tests) {
 | 
			
		||||
        // We special case this to provide the equivalent of old
 | 
			
		||||
        // `--list-test-names-only`, which could then be used by the
 | 
			
		||||
        // `--input-file` option.
 | 
			
		||||
        if (config.verbosity() == Verbosity::Quiet) {
 | 
			
		||||
        if (m_config->verbosity() == Verbosity::Quiet) {
 | 
			
		||||
            listTestNamesOnly(tests);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (config.hasTestFilters()) {
 | 
			
		||||
        if (m_config->hasTestFilters()) {
 | 
			
		||||
            Catch::cout() << "Matching test cases:\n";
 | 
			
		||||
        } else {
 | 
			
		||||
            Catch::cout() << "All available test cases:\n";
 | 
			
		||||
@@ -177,23 +177,24 @@ namespace Catch {
 | 
			
		||||
            Colour colourGuard(colour);
 | 
			
		||||
 | 
			
		||||
            Catch::cout() << TextFlow::Column(testCaseInfo.name).initialIndent(2).indent(4) << '\n';
 | 
			
		||||
            if (config.verbosity() >= Verbosity::High) {
 | 
			
		||||
            if (m_config->verbosity() >= Verbosity::High) {
 | 
			
		||||
                Catch::cout() << TextFlow::Column(Catch::Detail::stringify(testCaseInfo.lineInfo)).indent(4) << std::endl;
 | 
			
		||||
            }
 | 
			
		||||
            if (!testCaseInfo.tags.empty() && config.verbosity() > Verbosity::Quiet) {
 | 
			
		||||
            if ( !testCaseInfo.tags.empty() &&
 | 
			
		||||
                 m_config->verbosity() > Verbosity::Quiet ) {
 | 
			
		||||
                Catch::cout() << TextFlow::Column(testCaseInfo.tagsAsString()).indent(6) << '\n';
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!config.hasTestFilters()) {
 | 
			
		||||
        if (!m_config->hasTestFilters()) {
 | 
			
		||||
            Catch::cout() << pluralise(tests.size(), "test case") << '\n' << std::endl;
 | 
			
		||||
        } else {
 | 
			
		||||
            Catch::cout() << pluralise(tests.size(), "matching test case") << '\n' << std::endl;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void IStreamingReporter::listTags(std::vector<TagInfo> const& tags, IConfig const& config) {
 | 
			
		||||
        if (config.hasTestFilters()) {
 | 
			
		||||
    void IStreamingReporter::listTags(std::vector<TagInfo> const& tags) {
 | 
			
		||||
        if (m_config->hasTestFilters()) {
 | 
			
		||||
            Catch::cout() << "Tags for matching test cases:\n";
 | 
			
		||||
        } else {
 | 
			
		||||
            Catch::cout() << "All available tags:\n";
 | 
			
		||||
 
 | 
			
		||||
@@ -222,11 +222,11 @@ namespace Catch {
 | 
			
		||||
        virtual void fatalErrorEncountered( StringRef name );
 | 
			
		||||
 | 
			
		||||
        //! Writes out information about provided reporters using reporter-specific format
 | 
			
		||||
        virtual void listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const& config);
 | 
			
		||||
        virtual void listReporters(std::vector<ReporterDescription> const& descriptions);
 | 
			
		||||
        //! Writes out information about provided tests using reporter-specific format
 | 
			
		||||
        virtual void listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config);
 | 
			
		||||
        virtual void listTests(std::vector<TestCaseHandle> const& tests);
 | 
			
		||||
        //! Writes out information about the provided tags using reporter-specific format
 | 
			
		||||
        virtual void listTags(std::vector<TagInfo> const& tags, IConfig const& config);
 | 
			
		||||
        virtual void listTags(std::vector<TagInfo> const& tags);
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
    using IStreamingReporterPtr = Detail::unique_ptr<IStreamingReporter>;
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ namespace Catch {
 | 
			
		||||
        void listTests(IStreamingReporter& reporter, IConfig const& config) {
 | 
			
		||||
            auto const& testSpec = config.testSpec();
 | 
			
		||||
            auto matchedTestCases = filterTests(getAllTestCasesSorted(config), testSpec, config);
 | 
			
		||||
            reporter.listTests(matchedTestCases, config);
 | 
			
		||||
            reporter.listTests(matchedTestCases);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void listTags(IStreamingReporter& reporter, IConfig const& config) {
 | 
			
		||||
@@ -46,10 +46,10 @@ namespace Catch {
 | 
			
		||||
                infos.push_back(std::move(tagc.second));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            reporter.listTags(infos, config);
 | 
			
		||||
            reporter.listTags(infos);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void listReporters(IStreamingReporter& reporter, IConfig const& config) {
 | 
			
		||||
        void listReporters(IStreamingReporter& reporter) {
 | 
			
		||||
            std::vector<ReporterDescription> descriptions;
 | 
			
		||||
 | 
			
		||||
            IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
 | 
			
		||||
@@ -58,7 +58,7 @@ namespace Catch {
 | 
			
		||||
                descriptions.push_back({ fac.first, fac.second->getDescription() });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            reporter.listReporters(descriptions, config);
 | 
			
		||||
            reporter.listReporters(descriptions);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    } // end anonymous namespace
 | 
			
		||||
@@ -96,7 +96,7 @@ namespace Catch {
 | 
			
		||||
        }
 | 
			
		||||
        if (config.listReporters()) {
 | 
			
		||||
            listed = true;
 | 
			
		||||
            listReporters(reporter, config);
 | 
			
		||||
            listReporters(reporter);
 | 
			
		||||
        }
 | 
			
		||||
        return listed;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -100,13 +100,10 @@ namespace Catch {
 | 
			
		||||
    bool EventListenerBase::assertionEnded( AssertionStats const& ) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
    void
 | 
			
		||||
    EventListenerBase::listReporters( std::vector<ReporterDescription> const&,
 | 
			
		||||
                                      IConfig const& ) {}
 | 
			
		||||
    void EventListenerBase::listTests( std::vector<TestCaseHandle> const&,
 | 
			
		||||
                                       IConfig const& ) {}
 | 
			
		||||
    void EventListenerBase::listTags( std::vector<TagInfo> const&,
 | 
			
		||||
                                      IConfig const& ) {}
 | 
			
		||||
    void EventListenerBase::listReporters(
 | 
			
		||||
        std::vector<ReporterDescription> const& ) {}
 | 
			
		||||
    void EventListenerBase::listTests( std::vector<TestCaseHandle> const& ) {}
 | 
			
		||||
    void EventListenerBase::listTags( std::vector<TagInfo> const& ) {}
 | 
			
		||||
    void EventListenerBase::noMatchingTestCases( std::string const& ) {}
 | 
			
		||||
    void EventListenerBase::testRunStarting( TestRunInfo const& ) {}
 | 
			
		||||
    void EventListenerBase::testGroupStarting( GroupInfo const& ) {}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,13 +27,10 @@ namespace Catch {
 | 
			
		||||
        void assertionStarting( AssertionInfo const& assertionInfo ) override;
 | 
			
		||||
        bool assertionEnded( AssertionStats const& assertionStats ) override;
 | 
			
		||||
 | 
			
		||||
        void
 | 
			
		||||
        listReporters( std::vector<ReporterDescription> const& descriptions,
 | 
			
		||||
                       IConfig const& config ) override;
 | 
			
		||||
        void listTests( std::vector<TestCaseHandle> const& tests,
 | 
			
		||||
                        IConfig const& config ) override;
 | 
			
		||||
        void listTags( std::vector<TagInfo> const& tagInfos,
 | 
			
		||||
                       IConfig const& config ) override;
 | 
			
		||||
        void listReporters(
 | 
			
		||||
            std::vector<ReporterDescription> const& descriptions ) override;
 | 
			
		||||
        void listTests( std::vector<TestCaseHandle> const& tests ) override;
 | 
			
		||||
        void listTags( std::vector<TagInfo> const& tagInfos ) override;
 | 
			
		||||
 | 
			
		||||
        void noMatchingTestCases( std::string const& spec ) override;
 | 
			
		||||
        void testRunStarting( TestRunInfo const& testRunInfo ) override;
 | 
			
		||||
 
 | 
			
		||||
@@ -141,25 +141,25 @@ namespace Catch {
 | 
			
		||||
        m_reporter->skipTest( testInfo );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void ListeningReporter::listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const& config) {
 | 
			
		||||
    void ListeningReporter::listReporters(std::vector<ReporterDescription> const& descriptions) {
 | 
			
		||||
        for (auto const& listener : m_listeners) {
 | 
			
		||||
            listener->listReporters(descriptions, config);
 | 
			
		||||
            listener->listReporters(descriptions);
 | 
			
		||||
        }
 | 
			
		||||
        m_reporter->listReporters(descriptions, config);
 | 
			
		||||
        m_reporter->listReporters(descriptions);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void ListeningReporter::listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) {
 | 
			
		||||
    void ListeningReporter::listTests(std::vector<TestCaseHandle> const& tests) {
 | 
			
		||||
        for (auto const& listener : m_listeners) {
 | 
			
		||||
            listener->listTests(tests, config);
 | 
			
		||||
            listener->listTests(tests);
 | 
			
		||||
        }
 | 
			
		||||
        m_reporter->listTests(tests, config);
 | 
			
		||||
        m_reporter->listTests(tests);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void ListeningReporter::listTags(std::vector<TagInfo> const& tags, IConfig const& config) {
 | 
			
		||||
    void ListeningReporter::listTags(std::vector<TagInfo> const& tags) {
 | 
			
		||||
        for (auto const& listener : m_listeners) {
 | 
			
		||||
            listener->listTags(tags, config);
 | 
			
		||||
            listener->listTags(tags);
 | 
			
		||||
        }
 | 
			
		||||
        m_reporter->listTags(tags, config);
 | 
			
		||||
        m_reporter->listTags(tags);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
} // end namespace Catch
 | 
			
		||||
 
 | 
			
		||||
@@ -54,9 +54,9 @@ namespace Catch {
 | 
			
		||||
 | 
			
		||||
        void skipTest( TestCaseInfo const& testInfo ) override;
 | 
			
		||||
 | 
			
		||||
        void listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const& config) override;
 | 
			
		||||
        void listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) override;
 | 
			
		||||
        void listTags(std::vector<TagInfo> const& tags, IConfig const& config) override;
 | 
			
		||||
        void listReporters(std::vector<ReporterDescription> const& descriptions) override;
 | 
			
		||||
        void listTests(std::vector<TestCaseHandle> const& tests) override;
 | 
			
		||||
        void listTags(std::vector<TagInfo> const& tags) override;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 
 | 
			
		||||
@@ -272,7 +272,7 @@ namespace Catch {
 | 
			
		||||
        m_xml.endElement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void XmlReporter::listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const&) {
 | 
			
		||||
    void XmlReporter::listReporters(std::vector<ReporterDescription> const& descriptions) {
 | 
			
		||||
        auto outerTag = m_xml.scopedElement("AvailableReporters");
 | 
			
		||||
        for (auto const& reporter : descriptions) {
 | 
			
		||||
            auto inner = m_xml.scopedElement("Reporter");
 | 
			
		||||
@@ -285,7 +285,7 @@ namespace Catch {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void XmlReporter::listTests(std::vector<TestCaseHandle> const& tests, IConfig const&) {
 | 
			
		||||
    void XmlReporter::listTests(std::vector<TestCaseHandle> const& tests) {
 | 
			
		||||
        auto outerTag = m_xml.scopedElement("MatchingTests");
 | 
			
		||||
        for (auto const& test : tests) {
 | 
			
		||||
            auto innerTag = m_xml.scopedElement("TestCase");
 | 
			
		||||
@@ -310,7 +310,7 @@ namespace Catch {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void XmlReporter::listTags(std::vector<TagInfo> const& tags, IConfig const&) {
 | 
			
		||||
    void XmlReporter::listTags(std::vector<TagInfo> const& tags) {
 | 
			
		||||
        auto outerTag = m_xml.scopedElement("TagsFromMatchingTests");
 | 
			
		||||
        for (auto const& tag : tags) {
 | 
			
		||||
            auto innerTag = m_xml.scopedElement("Tag");
 | 
			
		||||
 
 | 
			
		||||
@@ -56,9 +56,9 @@ namespace Catch {
 | 
			
		||||
        void benchmarkEnded(BenchmarkStats<> const&) override;
 | 
			
		||||
        void benchmarkFailed(std::string const&) override;
 | 
			
		||||
 | 
			
		||||
        void listReporters(std::vector<ReporterDescription> const& descriptions, IConfig const& config) override;
 | 
			
		||||
        void listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) override;
 | 
			
		||||
        void listTags(std::vector<TagInfo> const& tags, IConfig const& config) override;
 | 
			
		||||
        void listReporters(std::vector<ReporterDescription> const& descriptions) override;
 | 
			
		||||
        void listTests(std::vector<TestCaseHandle> const& tests) override;
 | 
			
		||||
        void listTags(std::vector<TagInfo> const& tags) override;
 | 
			
		||||
 | 
			
		||||
    private:
 | 
			
		||||
        Timer m_testCaseTimer;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user