assertionEnded event in reporters no longer returns bool

This commit is contained in:
Martin Hořeňovský 2021-09-15 18:57:56 +02:00
parent 013edc208b
commit f314fa1f8c
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
23 changed files with 28 additions and 55 deletions

View File

@ -366,10 +366,9 @@ struct MyListener : Catch::EventListenerBase {
print( std::cout, 1, "- assertionInfo", assertionInfo ); print( std::cout, 1, "- assertionInfo", assertionInfo );
} }
bool assertionEnded( Catch::AssertionStats const& assertionStats ) override { void assertionEnded( Catch::AssertionStats const& assertionStats ) override {
std::cout << "\nEvent: assertionEnded:\n"; std::cout << "\nEvent: assertionEnded:\n";
print( std::cout, 1, "- assertionStats", assertionStats ); print( std::cout, 1, "- assertionStats", assertionStats );
return true;
} }
}; };

View File

@ -189,8 +189,7 @@ namespace Catch {
virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0; virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
// The return value indicates if the messages buffer should be cleared: virtual void assertionEnded( AssertionStats const& assertionStats ) = 0;
virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
virtual void sectionEnded( SectionStats const& sectionStats ) = 0; virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
//! Called _every time_ a TEST_CASE is entered, including repeats (due to sections) //! Called _every time_ a TEST_CASE is entered, including repeats (due to sections)

View File

@ -249,9 +249,7 @@ namespace Catch {
m_lastAssertionPassed = true; m_lastAssertionPassed = true;
} }
// We have no use for the return value (whether messages should be cleared), because messages were made scoped m_reporter->assertionEnded(AssertionStats(result, m_messages, m_totals));
// and should be let to clear themselves out.
static_cast<void>(m_reporter->assertionEnded(AssertionStats(result, m_messages, m_totals)));
if (result.getResultType() != ResultWas::Warning) if (result.getResultType() != ResultWas::Warning)
m_messageScopes.clear(); m_messageScopes.clear();

View File

@ -24,12 +24,7 @@ namespace Catch {
return "Reports test results in the format of Automake .trs files"s; return "Reports test results in the format of Automake .trs files"s;
} }
void assertionStarting( AssertionInfo const& ) override {}
bool assertionEnded( AssertionStats const& /*_assertionStats*/ ) override { return true; }
void testCaseEnded(TestCaseStats const& _testCaseStats) override; void testCaseEnded(TestCaseStats const& _testCaseStats) override;
void skipTest(TestCaseInfo const& testInfo) override; void skipTest(TestCaseInfo const& testInfo) override;
}; };

View File

@ -222,9 +222,7 @@ namespace Catch {
namespace Catch { namespace Catch {
void EventListenerBase::assertionStarting( AssertionInfo const& ) {} void EventListenerBase::assertionStarting( AssertionInfo const& ) {}
bool EventListenerBase::assertionEnded( AssertionStats const& ) { void EventListenerBase::assertionEnded( AssertionStats const& ) {}
return false;
}
void EventListenerBase::listReporters( void EventListenerBase::listReporters(
std::vector<ReporterDescription> const& ) {} std::vector<ReporterDescription> const& ) {}
void EventListenerBase::listTests( std::vector<TestCaseHandle> const& ) {} void EventListenerBase::listTests( std::vector<TestCaseHandle> const& ) {}

View File

@ -262,9 +262,7 @@ private:
stream << "No test cases matched '" << unmatchedSpec << "'\n"; stream << "No test cases matched '" << unmatchedSpec << "'\n";
} }
void CompactReporter::assertionStarting( AssertionInfo const& ) {} void CompactReporter::assertionEnded( AssertionStats const& _assertionStats ) {
bool CompactReporter::assertionEnded( AssertionStats const& _assertionStats ) {
AssertionResult const& result = _assertionStats.assertionResult; AssertionResult const& result = _assertionStats.assertionResult;
bool printInfoMessages = true; bool printInfoMessages = true;
@ -272,7 +270,7 @@ private:
// Drop out if result was successful and we're not printing those // Drop out if result was successful and we're not printing those
if( !m_config->includeSuccessfulResults() && result.isOk() ) { if( !m_config->includeSuccessfulResults() && result.isOk() ) {
if( result.getResultType() != ResultWas::Warning ) if( result.getResultType() != ResultWas::Warning )
return false; return;
printInfoMessages = false; printInfoMessages = false;
} }
@ -280,7 +278,6 @@ private:
printer.print(); printer.print();
stream << '\n' << std::flush; stream << '\n' << std::flush;
return true;
} }
void CompactReporter::sectionEnded(SectionStats const& _sectionStats) { void CompactReporter::sectionEnded(SectionStats const& _sectionStats) {

View File

@ -24,9 +24,7 @@ namespace Catch {
void noMatchingTestCases( StringRef unmatchedSpec ) override; void noMatchingTestCases( StringRef unmatchedSpec ) override;
void assertionStarting(AssertionInfo const&) override; void assertionEnded(AssertionStats const& _assertionStats) override;
bool assertionEnded(AssertionStats const& _assertionStats) override;
void sectionEnded(SectionStats const& _sectionStats) override; void sectionEnded(SectionStats const& _sectionStats) override;

View File

@ -391,21 +391,20 @@ void ConsoleReporter::reportInvalidArguments( StringRef arg ) {
void ConsoleReporter::assertionStarting(AssertionInfo const&) {} void ConsoleReporter::assertionStarting(AssertionInfo const&) {}
bool ConsoleReporter::assertionEnded(AssertionStats const& _assertionStats) { void ConsoleReporter::assertionEnded(AssertionStats const& _assertionStats) {
AssertionResult const& result = _assertionStats.assertionResult; AssertionResult const& result = _assertionStats.assertionResult;
bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); bool includeResults = m_config->includeSuccessfulResults() || !result.isOk();
// Drop out if result was successful but we're not printing them. // Drop out if result was successful but we're not printing them.
if (!includeResults && result.getResultType() != ResultWas::Warning) if (!includeResults && result.getResultType() != ResultWas::Warning)
return false; return;
lazyPrint(); lazyPrint();
ConsoleAssertionPrinter printer(stream, _assertionStats, includeResults); ConsoleAssertionPrinter printer(stream, _assertionStats, includeResults);
printer.print(); printer.print();
stream << '\n' << std::flush; stream << '\n' << std::flush;
return true;
} }
void ConsoleReporter::sectionStarting(SectionInfo const& _sectionInfo) { void ConsoleReporter::sectionStarting(SectionInfo const& _sectionInfo) {

View File

@ -28,7 +28,7 @@ namespace Catch {
void assertionStarting(AssertionInfo const&) override; void assertionStarting(AssertionInfo const&) override;
bool assertionEnded(AssertionStats const& _assertionStats) override; void assertionEnded(AssertionStats const& _assertionStats) override;
void sectionStarting(SectionInfo const& _sectionInfo) override; void sectionStarting(SectionInfo const& _sectionInfo) override;
void sectionEnded(SectionStats const& _sectionStats) override; void sectionEnded(SectionStats const& _sectionStats) override;

View File

@ -64,7 +64,7 @@ namespace Catch {
m_sectionStack.push_back( node ); m_sectionStack.push_back( node );
} }
bool CumulativeReporterBase::assertionEnded( void CumulativeReporterBase::assertionEnded(
AssertionStats const& assertionStats ) { AssertionStats const& assertionStats ) {
assert( !m_sectionStack.empty() ); assert( !m_sectionStack.empty() );
// AssertionResult holds a pointer to a temporary DecomposedExpression, // AssertionResult holds a pointer to a temporary DecomposedExpression,
@ -76,7 +76,6 @@ namespace Catch {
assertionStats.assertionResult.getExpandedExpression() ); assertionStats.assertionResult.getExpandedExpression() );
SectionNode& sectionNode = *m_sectionStack.back(); SectionNode& sectionNode = *m_sectionStack.back();
sectionNode.assertions.push_back( assertionStats ); sectionNode.assertions.push_back( assertionStats );
return true;
} }
void CumulativeReporterBase::sectionEnded( SectionStats const& sectionStats ) { void CumulativeReporterBase::sectionEnded( SectionStats const& sectionStats ) {

View File

@ -62,7 +62,7 @@ namespace Catch {
void assertionStarting( AssertionInfo const& ) override {} void assertionStarting( AssertionInfo const& ) override {}
bool assertionEnded( AssertionStats const& assertionStats ) override; void assertionEnded( AssertionStats const& assertionStats ) override;
void sectionEnded( SectionStats const& sectionStats ) override; void sectionEnded( SectionStats const& sectionStats ) override;
void testCasePartialEnded( TestCaseStats const&, uint64_t ) override {} void testCasePartialEnded( TestCaseStats const&, uint64_t ) override {}
void testCaseEnded( TestCaseStats const& testCaseStats ) override; void testCaseEnded( TestCaseStats const& testCaseStats ) override;

View File

@ -27,7 +27,7 @@ namespace Catch {
void reportInvalidArguments( StringRef unmatchedSpec ) override; void reportInvalidArguments( StringRef unmatchedSpec ) override;
void assertionStarting( AssertionInfo const& assertionInfo ) override; void assertionStarting( AssertionInfo const& assertionInfo ) override;
bool assertionEnded( AssertionStats const& assertionStats ) override; void assertionEnded( AssertionStats const& assertionStats ) override;
void listReporters( void listReporters(
std::vector<ReporterDescription> const& descriptions ) override; std::vector<ReporterDescription> const& descriptions ) override;

View File

@ -81,10 +81,10 @@ namespace Catch {
m_okToFail = testCaseInfo.okToFail(); m_okToFail = testCaseInfo.okToFail();
} }
bool JunitReporter::assertionEnded( AssertionStats const& assertionStats ) { void JunitReporter::assertionEnded( AssertionStats const& assertionStats ) {
if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException && !m_okToFail ) if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException && !m_okToFail )
unexpectedExceptions++; unexpectedExceptions++;
return CumulativeReporterBase::assertionEnded( assertionStats ); CumulativeReporterBase::assertionEnded( assertionStats );
} }
void JunitReporter::testCaseEnded( TestCaseStats const& testCaseStats ) { void JunitReporter::testCaseEnded( TestCaseStats const& testCaseStats ) {

View File

@ -26,7 +26,7 @@ namespace Catch {
void testRunStarting(TestRunInfo const& runInfo) override; void testRunStarting(TestRunInfo const& runInfo) override;
void testCaseStarting(TestCaseInfo const& testCaseInfo) override; void testCaseStarting(TestCaseInfo const& testCaseInfo) override;
bool assertionEnded(AssertionStats const& assertionStats) override; void assertionEnded(AssertionStats const& assertionStats) override;
void testCaseEnded(TestCaseStats const& testCaseStats) override; void testCaseEnded(TestCaseStats const& testCaseStats) override;

View File

@ -100,11 +100,11 @@ namespace Catch {
} }
// The return value indicates if the messages buffer should be cleared: // The return value indicates if the messages buffer should be cleared:
bool ListeningReporter::assertionEnded( AssertionStats const& assertionStats ) { void ListeningReporter::assertionEnded( AssertionStats const& assertionStats ) {
for( auto& listener : m_listeners ) { for( auto& listener : m_listeners ) {
static_cast<void>( listener->assertionEnded( assertionStats ) ); listener->assertionEnded( assertionStats );
} }
return m_reporter->assertionEnded( assertionStats ); m_reporter->assertionEnded( assertionStats );
} }
void ListeningReporter::sectionEnded( SectionStats const& sectionStats ) { void ListeningReporter::sectionEnded( SectionStats const& sectionStats ) {

View File

@ -45,8 +45,7 @@ namespace Catch {
void sectionStarting( SectionInfo const& sectionInfo ) override; void sectionStarting( SectionInfo const& sectionInfo ) override;
void assertionStarting( AssertionInfo const& assertionInfo ) override; void assertionStarting( AssertionInfo const& assertionInfo ) override;
// The return value indicates if the messages buffer should be cleared: void assertionEnded( AssertionStats const& assertionStats ) override;
bool assertionEnded( AssertionStats const& assertionStats ) override;
void sectionEnded( SectionStats const& sectionStats ) override; void sectionEnded( SectionStats const& sectionStats ) override;
void testCasePartialEnded(TestCaseStats const& testInfo, uint64_t partNumber) override; void testCasePartialEnded(TestCaseStats const& testInfo, uint64_t partNumber) override;
void testCaseEnded( TestCaseStats const& testCaseStats ) override; void testCaseEnded( TestCaseStats const& testCaseStats ) override;

View File

@ -56,7 +56,7 @@ namespace Catch {
} }
void assertionStarting( AssertionInfo const& ) override {} void assertionStarting( AssertionInfo const& ) override {}
bool assertionEnded( AssertionStats const& ) override { return true; } void assertionEnded( AssertionStats const& ) override {}
void sectionEnded(SectionStats const& /* _sectionStats */) override { void sectionEnded(SectionStats const& /* _sectionStats */) override {
m_sectionStack.pop_back(); m_sectionStack.pop_back();

View File

@ -198,7 +198,7 @@ namespace Catch {
stream << "# No test cases matched '" << unmatchedSpec << "'\n"; stream << "# No test cases matched '" << unmatchedSpec << "'\n";
} }
bool TAPReporter::assertionEnded(AssertionStats const& _assertionStats) { void TAPReporter::assertionEnded(AssertionStats const& _assertionStats) {
++counter; ++counter;
stream << "# " << currentTestCaseInfo->name << '\n'; stream << "# " << currentTestCaseInfo->name << '\n';
@ -206,7 +206,6 @@ namespace Catch {
printer.print(); printer.print();
stream << '\n' << std::flush; stream << '\n' << std::flush;
return true;
} }
void TAPReporter::testRunEnded(TestRunStats const& _testRunStats) { void TAPReporter::testRunEnded(TestRunStats const& _testRunStats) {

View File

@ -27,9 +27,7 @@ namespace Catch {
void noMatchingTestCases( StringRef unmatchedSpec ) override; void noMatchingTestCases( StringRef unmatchedSpec ) override;
void assertionStarting( AssertionInfo const& ) override {} void assertionEnded(AssertionStats const& _assertionStats) override;
bool assertionEnded(AssertionStats const& _assertionStats) override;
void testRunEnded(TestRunStats const& _testRunStats) override; void testRunEnded(TestRunStats const& _testRunStats) override;

View File

@ -56,7 +56,7 @@ namespace Catch {
<< escape( runStats.runInfo.name ) << "']\n"; << escape( runStats.runInfo.name ) << "']\n";
} }
bool TeamCityReporter::assertionEnded(AssertionStats const& assertionStats) { void TeamCityReporter::assertionEnded(AssertionStats const& assertionStats) {
AssertionResult const& result = assertionStats.assertionResult; AssertionResult const& result = assertionStats.assertionResult;
if (!result.isOk()) { if (!result.isOk()) {
@ -124,7 +124,6 @@ namespace Catch {
} }
} }
stream.flush(); stream.flush();
return true;
} }
void TeamCityReporter::testCaseStarting(TestCaseInfo const& testInfo) { void TeamCityReporter::testCaseStarting(TestCaseInfo const& testInfo) {

View File

@ -38,9 +38,7 @@ namespace Catch {
void testRunEnded( TestRunStats const& testGroupStats ) override; void testRunEnded( TestRunStats const& testGroupStats ) override;
void assertionStarting(AssertionInfo const&) override {} void assertionEnded(AssertionStats const& assertionStats) override;
bool assertionEnded(AssertionStats const& assertionStats) override;
void sectionStarting(SectionInfo const& sectionInfo) override { void sectionStarting(SectionInfo const& sectionInfo) override {
m_headerPrintedForThisSection = false; m_headerPrintedForThisSection = false;

View File

@ -86,7 +86,7 @@ namespace Catch {
void XmlReporter::assertionStarting( AssertionInfo const& ) { } void XmlReporter::assertionStarting( AssertionInfo const& ) { }
bool XmlReporter::assertionEnded( AssertionStats const& assertionStats ) { void XmlReporter::assertionEnded( AssertionStats const& assertionStats ) {
AssertionResult const& result = assertionStats.assertionResult; AssertionResult const& result = assertionStats.assertionResult;
@ -107,7 +107,7 @@ namespace Catch {
// Drop out if result was successful but we're not printing them. // Drop out if result was successful but we're not printing them.
if( !includeResults && result.getResultType() != ResultWas::Warning ) if( !includeResults && result.getResultType() != ResultWas::Warning )
return true; return;
// Print the expression if there is one. // Print the expression if there is one.
@ -157,8 +157,6 @@ namespace Catch {
if( result.hasExpression() ) if( result.hasExpression() )
m_xml.endElement(); m_xml.endElement();
return true;
} }
void XmlReporter::sectionEnded( SectionStats const& sectionStats ) { void XmlReporter::sectionEnded( SectionStats const& sectionStats ) {

View File

@ -37,7 +37,7 @@ namespace Catch {
void assertionStarting(AssertionInfo const&) override; void assertionStarting(AssertionInfo const&) override;
bool assertionEnded(AssertionStats const& assertionStats) override; void assertionEnded(AssertionStats const& assertionStats) override;
void sectionEnded(SectionStats const& sectionStats) override; void sectionEnded(SectionStats const& sectionStats) override;