| the Compartmented Robust Posix C++ Unit Test system | hosted by |
|---|
Provide information that can be useful in determining in why a test failed.
Used in: A test function body, the constructor or destructor of a
fixture, or a function called from
them.
See TEST(name, ...).
Use INFO as an output stream object to
provide information to test reports. Each INFO
statement gives a separate report item. The output from an
INFO statement is only shown if the test fails
(or if the test is runs in verbose mode, see the
-v command line flag.)
Example: The test program
#include <crpcut.hpp>
#include <cstring>
const char *expected_string = 0;
bool check_string(const char *p)
{
if (!expected_string) return false;
INFO << "expected string = " << expected_string;
return std::strcmp(p, expected_string) != 0;
}
TEST(pass_null)
{
check_string(0);
}
TEST(pass_no_init)
{
check_string("rope");
}
TEST(fail_null)
{
expected_string = "wire";
check_string(0);
}
TEST(pass_wrong_string)
{
expected_string = "wire";
check_string("rope");
}
int main(int argc, char *argv[])
{
return crpcut::run(argc, argv);
}
provides one detailed failure report:
FAILED: fail_null
info---------------------------------------------------------------------------
expected string = wire
-------------------------------------------------------------------------------
/tmp/crpcut88NaIt/fail_null is not empty!!
phase="running" --------------------------------------------------------------
Died with core dump
-------------------------------------------------------------------------------
===============================================================================
Files remain under /tmp/crpcut88NaIt
Total 4 test cases selected
UNTESTED : 0
PASSED : 3
FAILED : 1