mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-25 23:06: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" )
|
||||
{
|
||||
INFO( "this is a " << "message" ); // This should output the message but continue
|
||||
WARN( "this is a " << "warning" ); // 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 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
|
||||
}
|
@ -110,7 +110,7 @@ namespace Catch
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
virtual void Result( const ResultInfo& resultInfo )
|
||||
{
|
||||
if( !m_config.includeSuccessfulResults() && resultInfo.ok() )
|
||||
if( !m_config.includeSuccessfulResults() && resultInfo.getResultType() == ResultWas::Ok )
|
||||
return;
|
||||
|
||||
if( !resultInfo.getFilename().empty() )
|
||||
|
@ -114,7 +114,7 @@ namespace Catch
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
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();
|
||||
TestStats stats;
|
||||
|
@ -93,7 +93,7 @@ namespace Catch
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
virtual void Result( const Catch::ResultInfo& resultInfo )
|
||||
{
|
||||
if( !m_config.includeSuccessfulResults() && resultInfo.ok() )
|
||||
if( !m_config.includeSuccessfulResults() && resultInfo.getResultType() == ResultWas::Ok )
|
||||
return;
|
||||
|
||||
if( resultInfo.hasExpression() )
|
||||
|
@ -164,7 +164,22 @@ namespace Catch
|
||||
else if( !result.ok() )
|
||||
m_failures++;
|
||||
|
||||
m_reporter->Result( result );
|
||||
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 );
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
ITestReporter* m_reporter;
|
||||
std::vector<ScopedInfo*> m_scopedInfos;
|
||||
std::vector<ResultInfo> m_info;
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user