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:
Martin Hořeňovský
2022-04-19 10:32:13 +02:00
parent 90e6905050
commit 17a04f88d9
19 changed files with 73 additions and 20 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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)

View File

@@ -63,7 +63,6 @@ namespace Catch {
void printTotalsDivider(Totals const& totals);
void printSummaryDivider();
void printTestFilters();
bool m_headerPrinted = false;
bool m_testRunInfoPrinted = false;

View File

@@ -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');
}

View File

@@ -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";
}

View File

@@ -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;