Capture std::clog writes and combine them with std::cerr writes (#989)

This also introduces Catch::clog() method to allow embedded targets
to override std::clog usage with their own stream (presumably null-sink),
similarly to how Catch::cout() and Catch::cerr() are used.

Fixes #989
This commit is contained in:
Martin Hořeňovský
2017-08-09 15:28:40 +02:00
parent 92d714ee12
commit 7e4038d848
8 changed files with 116 additions and 7 deletions

View File

@@ -7309,6 +7309,24 @@ A string sent directly to stderr
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="Standard error is reported and redirected" tags="[.][hide][messages]" filename="projects/<exe-name>/MessageTests.cpp" >
<Section name="std::cerr" filename="projects/<exe-name>/MessageTests.cpp" >
<OverallResults successes="0" failures="1" expectedFailures="0"/>
</Section>
<Section name="std::clog" filename="projects/<exe-name>/MessageTests.cpp" >
<OverallResults successes="0" failures="1" expectedFailures="0"/>
</Section>
<Section name="Interleaved writes to cerr and clog" filename="projects/<exe-name>/MessageTests.cpp" >
<OverallResults successes="0" failures="1" expectedFailures="0"/>
</Section>
<OverallResult success="false">
<StdErr>
Write to std::cerr
Write to std::clog
Interleaved writes to error streams
</StdErr>
</OverallResult>
</TestCase>
<TestCase name="Standard output from all sections is reported" tags="[.][hide][messages]" filename="projects/<exe-name>/MessageTests.cpp" >
<Section name="one" filename="projects/<exe-name>/MessageTests.cpp" >
<OverallResults successes="0" failures="1" expectedFailures="0"/>
@@ -10143,7 +10161,7 @@ spanner <OverallResult success="true"/>
</Section>
<OverallResult success="true"/>
</TestCase>
<OverallResults successes="859" failures="91" expectedFailures="21"/>
<OverallResults successes="859" failures="94" expectedFailures="21"/>
</Group>
<OverallResults successes="859" failures="90" expectedFailures="21"/>
<OverallResults successes="859" failures="93" expectedFailures="21"/>
</Catch>