mirror of
https://github.com/catchorg/Catch2.git
synced 2025-07-12 03:55:32 +02:00

Classes will automatically inherit the virtual-ness of their base class destructors. If the base class already has a virtual destructor and the derived class needs default destructor semantics then the derived class can omit defining the destructor in favor of the compiler automatically defining it. This has an additional benefit of reenabling move semantics. The presence of a user-specified destructor automatically disables move operations.
60 lines
1.9 KiB
C++
60 lines
1.9 KiB
C++
|
|
// Copyright Catch2 Authors
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE.txt or copy at
|
|
// https://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
#ifndef CATCH_REPORTER_SONARQUBE_HPP_INCLUDED
|
|
#define CATCH_REPORTER_SONARQUBE_HPP_INCLUDED
|
|
|
|
#include <catch2/reporters/catch_reporter_cumulative_base.hpp>
|
|
|
|
#include <catch2/internal/catch_xmlwriter.hpp>
|
|
#include <catch2/internal/catch_move_and_forward.hpp>
|
|
|
|
namespace Catch {
|
|
|
|
class SonarQubeReporter final : public CumulativeReporterBase {
|
|
public:
|
|
SonarQubeReporter(ReporterConfig&& config)
|
|
: CumulativeReporterBase(CATCH_MOVE(config))
|
|
, xml(m_stream) {
|
|
m_preferences.shouldRedirectStdOut = true;
|
|
m_preferences.shouldReportAllAssertions = true;
|
|
m_shouldStoreSuccesfulAssertions = false;
|
|
}
|
|
|
|
static std::string getDescription() {
|
|
using namespace std::string_literals;
|
|
return "Reports test results in the Generic Test Data SonarQube XML format"s;
|
|
}
|
|
|
|
void testRunStarting( TestRunInfo const& testRunInfo ) override;
|
|
|
|
void testRunEndedCumulative() override {
|
|
writeRun( *m_testRun );
|
|
xml.endElement();
|
|
}
|
|
|
|
void writeRun( TestRunNode const& groupNode );
|
|
|
|
void writeTestFile(StringRef filename, std::vector<TestCaseNode const*> const& testCaseNodes);
|
|
|
|
void writeTestCase(TestCaseNode const& testCaseNode);
|
|
|
|
void writeSection(std::string const& rootName, SectionNode const& sectionNode, bool okToFail);
|
|
|
|
void writeAssertions(SectionNode const& sectionNode, bool okToFail);
|
|
|
|
void writeAssertion(AssertionStats const& stats, bool okToFail);
|
|
|
|
private:
|
|
XmlWriter xml;
|
|
};
|
|
|
|
|
|
} // end namespace Catch
|
|
|
|
#endif // CATCH_REPORTER_SONARQUBE_HPP_INCLUDED
|