mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-26 07:16:10 +01:00
INFO() now works correctly
This commit is contained in:
parent
a36b8d0779
commit
89c464709e
@ -14,11 +14,30 @@
|
|||||||
|
|
||||||
TEST_CASE( "succeeding/message", "INFO and WARN do not abort tests" )
|
TEST_CASE( "succeeding/message", "INFO and WARN do not abort tests" )
|
||||||
{
|
{
|
||||||
INFO( "this is a " << "message" ); // This should output the message but continue
|
INFO( "this is a " << "message" ); // This should output the message if a failure occurs
|
||||||
WARN( "this is a " << "warning" ); // This should output the message but continue
|
WARN( "this is a " << "warning" ); // This should always output the message but then continue
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE( "failing/message", "FAIL aborts the test" )
|
TEST_CASE( "failing/message/info/1", "INFO gets logged on failure" )
|
||||||
|
{
|
||||||
|
INFO( "this message should be logged" );
|
||||||
|
int a = 2;
|
||||||
|
REQUIRE( a == 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE( "failing/message/info/2", "INFO gets logged on failure" )
|
||||||
|
{
|
||||||
|
INFO( "this message should not be logged" );
|
||||||
|
int a = 2;
|
||||||
|
REQUIRE( a == 2 );
|
||||||
|
|
||||||
|
INFO( "this message should be logged" );
|
||||||
|
INFO( "so should this" );
|
||||||
|
|
||||||
|
REQUIRE( a == 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE( "failing/message/fail", "FAIL aborts the test" )
|
||||||
{
|
{
|
||||||
FAIL( "This is a " << "failure" ); // This should output the message and abort
|
FAIL( "This is a " << "failure" ); // This should output the message and abort
|
||||||
}
|
}
|
@ -110,7 +110,7 @@ namespace Catch
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
virtual void Result( const ResultInfo& resultInfo )
|
virtual void Result( const ResultInfo& resultInfo )
|
||||||
{
|
{
|
||||||
if( !m_config.includeSuccessfulResults() && resultInfo.ok() )
|
if( !m_config.includeSuccessfulResults() && resultInfo.getResultType() == ResultWas::Ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( !resultInfo.getFilename().empty() )
|
if( !resultInfo.getFilename().empty() )
|
||||||
|
@ -114,7 +114,7 @@ namespace Catch
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
virtual void Result( const Catch::ResultInfo& resultInfo )
|
virtual void Result( const Catch::ResultInfo& resultInfo )
|
||||||
{
|
{
|
||||||
if( !resultInfo.ok() || m_config.includeSuccessfulResults() )
|
if( resultInfo.getResultType() != ResultWas::Ok || m_config.includeSuccessfulResults() )
|
||||||
{
|
{
|
||||||
TestCaseStats& testCaseStats = m_currentStats->testCaseStats.back();
|
TestCaseStats& testCaseStats = m_currentStats->testCaseStats.back();
|
||||||
TestStats stats;
|
TestStats stats;
|
||||||
|
@ -93,7 +93,7 @@ namespace Catch
|
|||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
virtual void Result( const Catch::ResultInfo& resultInfo )
|
virtual void Result( const Catch::ResultInfo& resultInfo )
|
||||||
{
|
{
|
||||||
if( !m_config.includeSuccessfulResults() && resultInfo.ok() )
|
if( !m_config.includeSuccessfulResults() && resultInfo.getResultType() == ResultWas::Ok )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( resultInfo.hasExpression() )
|
if( resultInfo.hasExpression() )
|
||||||
|
@ -164,8 +164,23 @@ namespace Catch
|
|||||||
else if( !result.ok() )
|
else if( !result.ok() )
|
||||||
m_failures++;
|
m_failures++;
|
||||||
|
|
||||||
|
if( !result.ok() )
|
||||||
|
{
|
||||||
|
std::vector<ResultInfo>::const_iterator it = m_info.begin();
|
||||||
|
std::vector<ResultInfo>::const_iterator itEnd = m_info.end();
|
||||||
|
for(; it != itEnd; ++it )
|
||||||
|
m_reporter->Result( *it );
|
||||||
|
}
|
||||||
|
if( result.getResultType() == ResultWas::Info )
|
||||||
|
{
|
||||||
|
m_info.push_back( result );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_info.clear();
|
||||||
m_reporter->Result( result );
|
m_reporter->Result( result );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
virtual bool sectionStarted( const std::string& name, const std::string& description, std::size_t& successes, std::size_t& failures )
|
virtual bool sectionStarted( const std::string& name, const std::string& description, std::size_t& successes, std::size_t& failures )
|
||||||
{
|
{
|
||||||
@ -202,6 +217,7 @@ namespace Catch
|
|||||||
std::size_t m_failures;
|
std::size_t m_failures;
|
||||||
ITestReporter* m_reporter;
|
ITestReporter* m_reporter;
|
||||||
std::vector<ScopedInfo*> m_scopedInfos;
|
std::vector<ScopedInfo*> m_scopedInfos;
|
||||||
|
std::vector<ResultInfo> m_info;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user