stdout retained for all sections

Fixed issue where stdout was dropped between sections
This commit is contained in:
Phil Nash 2011-12-28 10:23:32 +00:00
parent 458e5eec16
commit b13ad46532
6 changed files with 40 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* /*
* catch_runner.hpp * catch_runner.hpp
* Catch * Catch
* *
@ -45,7 +45,7 @@ namespace Catch
~StreamRedirect ~StreamRedirect
() ()
{ {
m_targetString = m_oss.str(); m_targetString += m_oss.str();
m_stream.rdbuf( m_prevBuf ); m_stream.rdbuf( m_prevBuf );
} }

View File

@ -74,7 +74,6 @@ namespace Catch
if( testSpec.matches( it->getName() ) ) if( testSpec.matches( it->getName() ) )
{ {
testList.push_back( *it ); testList.push_back( *it );
std::cout << it->getName() << std::endl;
} }
} }
return testList; return testList;

View File

@ -49,3 +49,29 @@ 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
} }
TEST_CASE( "./failing/message/sections", "Output from all sections is reported" )
{
SECTION( "one", "" )
{
FAIL( "Message from section one" );
}
SECTION( "two", "" )
{
FAIL( "Message from section two" );
}
}
TEST_CASE( "./succeeding/message/sections/stdout", "Output from all sections is reported" )
{
SECTION( "one", "" )
{
std::cout << "Message from section one" << std::endl;
}
SECTION( "two", "" )
{
std::cout << "Message from section two" << std::endl;
}
}

View File

@ -56,7 +56,7 @@ TEST_CASE( "selftest/main", "Runs all Catch self tests and checks their results"
{ {
runner.runMatching( "./failing/*" ); runner.runMatching( "./failing/*" );
CHECK( runner.getSuccessCount() == 0 ); CHECK( runner.getSuccessCount() == 0 );
CHECK( runner.getFailureCount() == 62 ); CHECK( runner.getFailureCount() == 64 );
} }
} }
} }

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "1"
version = "1.0">
</Bucket>

View File

@ -55,6 +55,12 @@
ReferencedContainer = "container:CatchSelfTest.xcodeproj"> ReferencedContainer = "container:CatchSelfTest.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<CommandLineArguments>
<CommandLineArgument
argument = "-t ./succeeding/message/sections/stdout"
isEnabled = "NO">
</CommandLineArgument>
</CommandLineArguments>
<AdditionalOptions> <AdditionalOptions>
</AdditionalOptions> </AdditionalOptions>
</LaunchAction> </LaunchAction>