mirror of
https://github.com/catchorg/Catch2.git
synced 2025-08-03 13:55:39 +02:00
Always report rng seed from builtin reporters
Not all reporters use a format that supports this, so TeamCity and Automake reporters still do not report it. The console reporter now reports it even on successful runs, where before it only reported the rng seed in the header, which was showed either for failed run, or for run with `-s`. CLoses #2065
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
// SPDX-License-Identifier: BSL-1.0
|
||||
#include <catch2/reporters/catch_reporter_compact.hpp>
|
||||
|
||||
#include <catch2/catch_test_spec.hpp>
|
||||
#include <catch2/reporters/catch_reporter_helpers.hpp>
|
||||
#include <catch2/interfaces/catch_interfaces_config.hpp>
|
||||
#include <catch2/internal/catch_platform.hpp>
|
||||
@@ -253,6 +254,16 @@ private:
|
||||
m_stream << "No test cases matched '" << unmatchedSpec << "'\n";
|
||||
}
|
||||
|
||||
void CompactReporter::testRunStarting( TestRunInfo const& ) {
|
||||
if ( m_config->testSpec().hasFilters() ) {
|
||||
m_stream << m_colour->guardColour( Colour::BrightYellow )
|
||||
<< "Filters: "
|
||||
<< serializeFilters( m_config->getTestsOrTags() )
|
||||
<< '\n';
|
||||
}
|
||||
m_stream << "RNG seed: " << m_config->rngSeed() << '\n';
|
||||
}
|
||||
|
||||
void CompactReporter::assertionEnded( AssertionStats const& _assertionStats ) {
|
||||
AssertionResult const& result = _assertionStats.assertionResult;
|
||||
|
||||
|
@@ -24,6 +24,8 @@ namespace Catch {
|
||||
|
||||
void noMatchingTestCases( StringRef unmatchedSpec ) override;
|
||||
|
||||
void testRunStarting( TestRunInfo const& _testInfo ) override;
|
||||
|
||||
void assertionEnded(AssertionStats const& _assertionStats) override;
|
||||
|
||||
void sectionEnded(SectionStats const& _sectionStats) override;
|
||||
|
@@ -496,7 +496,11 @@ void ConsoleReporter::testRunEnded(TestRunStats const& _testRunStats) {
|
||||
}
|
||||
void ConsoleReporter::testRunStarting(TestRunInfo const& _testInfo) {
|
||||
StreamingReporterBase::testRunStarting(_testInfo);
|
||||
printTestFilters();
|
||||
if ( m_config->testSpec().hasFilters() ) {
|
||||
m_stream << m_colour->guardColour( Colour::BrightYellow ) << "Filters: "
|
||||
<< serializeFilters( m_config->getTestsOrTags() ) << '\n';
|
||||
}
|
||||
m_stream << "Randomness seeded to: " << m_config->rngSeed() << '\n';
|
||||
}
|
||||
|
||||
void ConsoleReporter::lazyPrint() {
|
||||
@@ -521,8 +525,7 @@ void ConsoleReporter::lazyPrintRunInfo() {
|
||||
<< m_colour->guardColour( Colour::SecondaryText )
|
||||
<< currentTestRunInfo.name << " is a Catch2 v" << libraryVersion()
|
||||
<< " host application.\n"
|
||||
<< "Run with -? for options\n\n"
|
||||
<< "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
|
||||
<< "Run with -? for options\n\n";
|
||||
|
||||
m_testRunInfoPrinted = true;
|
||||
}
|
||||
@@ -701,13 +704,6 @@ void ConsoleReporter::printSummaryDivider() {
|
||||
m_stream << lineOfChars('-') << '\n';
|
||||
}
|
||||
|
||||
void ConsoleReporter::printTestFilters() {
|
||||
if (m_config->testSpec().hasFilters()) {
|
||||
m_stream << m_colour->guardColour( Colour::BrightYellow ) << "Filters: "
|
||||
<< serializeFilters( m_config->getTestsOrTags() ) << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
} // end namespace Catch
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
@@ -63,7 +63,6 @@ namespace Catch {
|
||||
|
||||
void printTotalsDivider(Totals const& totals);
|
||||
void printSummaryDivider();
|
||||
void printTestFilters();
|
||||
|
||||
bool m_headerPrinted = false;
|
||||
bool m_testRunInfoPrinted = false;
|
||||
|
@@ -9,13 +9,25 @@
|
||||
|
||||
#include <catch2/internal/catch_string_manip.hpp>
|
||||
#include <catch2/catch_test_case_info.hpp>
|
||||
#include <catch2/internal/catch_reusable_string_stream.hpp>
|
||||
#include <catch2/interfaces/catch_interfaces_config.hpp>
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace Catch {
|
||||
|
||||
namespace {
|
||||
std::string createRngSeedString(uint32_t seed) {
|
||||
ReusableStringStream sstr;
|
||||
sstr << "rng-seed=" << seed;
|
||||
return sstr.str();
|
||||
}
|
||||
}
|
||||
|
||||
void SonarQubeReporter::testRunStarting(TestRunInfo const& testRunInfo) {
|
||||
CumulativeReporterBase::testRunStarting(testRunInfo);
|
||||
|
||||
xml.writeComment( createRngSeedString( m_config->rngSeed() ) );
|
||||
xml.startElement("testExecutions");
|
||||
xml.writeAttribute("version"_sr, '1');
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@
|
||||
#include <catch2/internal/catch_console_colour.hpp>
|
||||
#include <catch2/internal/catch_string_manip.hpp>
|
||||
#include <catch2/catch_test_case_info.hpp>
|
||||
#include <catch2/interfaces/catch_interfaces_config.hpp>
|
||||
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
@@ -189,6 +190,10 @@ namespace Catch {
|
||||
|
||||
} // End anonymous namespace
|
||||
|
||||
void TAPReporter::testRunStarting( TestRunInfo const& ) {
|
||||
m_stream << "# rng-seed: " << m_config->rngSeed() << '\n';
|
||||
}
|
||||
|
||||
void TAPReporter::noMatchingTestCases( StringRef unmatchedSpec ) {
|
||||
m_stream << "# No test cases matched '" << unmatchedSpec << "'\n";
|
||||
}
|
||||
|
@@ -26,6 +26,8 @@ namespace Catch {
|
||||
return "Reports test results in TAP format, suitable for test harnesses"s;
|
||||
}
|
||||
|
||||
void testRunStarting( TestRunInfo const& testInfo ) override;
|
||||
|
||||
void noMatchingTestCases( StringRef unmatchedSpec ) override;
|
||||
|
||||
void assertionEnded(AssertionStats const& _assertionStats) override;
|
||||
|
Reference in New Issue
Block a user