blob: f68ba2604e157d8a08bc33a1771df6bf5104b85f [file] [log] [blame]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Human readable log output format</title>
<link rel="stylesheet" href="../../../../style/style.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../../index.html" title="Boost Test Library">
<link rel="up" href="test-log.html" title="Test log output">
<link rel="prev" href="BOOST_TEST_PASSPOINT.html" title="Logging floating point type numbers">
<link rel="next" href="log-xml-format.html" title="XML based log output format">
<script language="JavaScript1.2" src="../../../../js/boost-test.js"></script>
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table width="100%"><tr>
<td width="10%"><a href="../../../index.html"><img alt="Home" width="229" height="61" border="0" src="../../../../../../../libs/test/docbook/img/boost.test.logo.png"></a></td>
<td valign="middle" align="left"> &gt; <a href="../../../utf.html">The Unit Test Framework</a> &gt; <a href="../../user-guide.html">User's guide</a><a href="../../testing-tools.html">
&gt;
</a><a href="../test-output.html">Test Output </a><a href="../runtime-config.html">
&gt;
</a><a href="test-log.html">Test log</a><a href="results-report.html">
&gt;
</a><b>Human readable format</b>
</td>
<td><div class="spirit-nav">
<a href="BOOST_TEST_PASSPOINT.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a href="log-xml-format.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div></td>
</tr></table>
<hr>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
<a name="utf.user-guide.test-output.log.human-readabe-format"></a>Human readable log output format</h6></div></div></div>
<p class="first-line-indented">
The human readable log format is designed to closely match an errors description produced by the Microsoft family
of C++ compilers. This format allows jumping to the error location, if test module output is redirected into IDE
output window. The rest of the log messages are designed to produce the most human friendly description of the
events occurring in test module. This is a default format generated by test modules.
</p>
<p class="first-line-indented">
Here the list of events along with corresponding message and the condition that has to be satisfied for it to appear
in the output.
</p>
<div class="segmentedlist">
<table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On testing start</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold != log_nothing</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Running <span class="userinput">&lt;total number of test cases&gt;</span> test case(s) </p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On testing start</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold != log_nothing and show_build_info is set</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Platform: $BOOST_PLATFORM<br>
Compiler: $BOOST_COMPILER<br>
STL     : $BOOST_STDLIB<br>
Boost   : $BOOST_VERSION</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On abnormal testing termination</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_messages</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Test is aborted</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On test unit start</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_test_units</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Entering test <span class="userinput">&lt;test unit type&gt;</span> <span class="userinput">&lt;test unit name&gt;</span></p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On test unit end</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_test_units; testing time is reported only if elapsed time is more than 1 mks.</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Leaving test <span class="userinput">&lt;test unit type&gt;</span> <span class="userinput">&lt;test unit name&gt;</span>; testing time <span class="userinput">&lt;value&gt;</span></p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On skipped test unit</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_test_units</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>Test <span class="userinput">&lt;test unit type&gt;</span> <span class="userinput">&lt;test unit name&gt;</span> is skipped</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On uncaught C++ exception</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_cpp_exception_errors. Checkpoint message is reported only if provided</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>unknown location(0): fatal error in <span class="userinput">&lt;test case name&gt;</span><span class="userinput">&lt;explanation&gt;</span><br>
<span class="userinput">&lt;last checkpoint location&gt;</span>: last checkpoint: <span class="userinput">&lt;checkpoint message&gt;</span></p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On resumable system error</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_system_errors. Checkpoint message is reported only if provided</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>unknown location(0): fatal error in <span class="userinput">&lt;test case name&gt;</span><span class="userinput">&lt;explanation&gt;</span><br>
<span class="userinput">&lt;last checkpoint location&gt;</span>: last checkpoint: <span class="userinput">&lt;checkpoint message&gt;</span></p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On fatal system error</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_fatal_errors. Checkpoint message is reported only if provided</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p>unknown location(0): fatal error in <span class="userinput">&lt;test case name&gt;</span><span class="userinput">&lt;explanation&gt;</span><br>
<span class="userinput">&lt;last checkpoint location&gt;</span>: last checkpoint: <span class="userinput">&lt;checkpoint message&gt;</span></p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On passed test assertion</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_successful_tests</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p><span class="userinput">&lt;assertion location&gt;</span>: info: check<span class="userinput">&lt;assertion expression&gt;</span> passed</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On failed WARNING level test assertion</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_warnings</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p><span class="userinput">&lt;assertion location&gt;</span>: warning in <span class="userinput">&lt;test case name&gt;</span>: condition <span class="userinput">&lt;assertion description&gt;</span> is not satisfied</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On failed CHECK level test assertion</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_all_errors</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p><span class="userinput">&lt;assertion location&gt;</span>: error in <span class="userinput">&lt;test case name&gt;</span>: check <span class="userinput">&lt;assertion description&gt;</span> failed</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On failed REQUIRE level test assertion</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_fatal_errors</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p><span class="userinput">&lt;assertion location&gt;</span>: fatal error in <span class="userinput">&lt;test case name&gt;</span>: critical check <span class="userinput">&lt;assertion description&gt;</span> failed</p></div></code>
</td>
</tr>
</table>
<br><table class="seglistitem">
<tr class="seg">
<td><strong><nobr><span class="segtitle">Event</span></nobr></strong></td>
<td>: </td>
<td>On test log message</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Condition</span></nobr></strong></td>
<td>: </td>
<td>threshold &lt;= log_messages</td>
</tr>
<tr class="seg">
<td><strong><nobr><span class="segtitle">Output</span></nobr></strong></td>
<td>: </td>
<td>
<code class="computeroutput"><div class="literallayout"><p><span class="userinput">&lt;Message content&gt;</span></p></div></code>
</td>
</tr>
</table>
<br>
</div>
<p class="first-line-indented">
Advanced <a class="link" href="../../testing-tools.html" title="The UTF testing tools or tester's toolbox for all occasions">testing tools</a> may produce more complicated error messages.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Gennadiy Rozental</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="BOOST_TEST_PASSPOINT.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="test-log.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="log-xml-format.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>