Files
SingularityViewer/libraries/include/tut/tut_result.hpp
2010-04-02 02:48:44 -03:00

131 lines
2.4 KiB
C++

#ifndef TUT_RESULT_H_GUARD
#define TUT_RESULT_H_GUARD
#include <string>
namespace tut
{
#if defined(TUT_USE_POSIX)
struct test_result_posix
{
test_result_posix()
: pid(getpid())
{
}
pid_t pid;
};
#else
struct test_result_posix
{
};
#endif
/**
* Return type of runned test/test group.
*
* For test: contains result of test and, possible, message
* for failure or exception.
*/
struct test_result : public test_result_posix
{
/**
* Test group name.
*/
std::string group;
/**
* Test number in group.
*/
int test;
/**
* Test name (optional)
*/
std::string name;
/**
* ok - test finished successfully
* fail - test failed with ensure() or fail() methods
* ex - test throwed an exceptions
* warn - test finished successfully, but test destructor throwed
* term - test forced test application to terminate abnormally
* skip - test skpped because it is a known failure case
*/
enum result_type
{
ok,
fail,
ex,
warn,
term,
ex_ctor,
rethrown,
skip,
};
result_type result;
/**
* Exception message for failed test.
*/
std::string message;
std::string exception_typeid;
/**
* Default constructor.
*/
test_result()
: test(0),
result(ok)
{
}
/**
* Constructor.
*/
test_result(const std::string& grp, int pos,
const std::string& test_name, result_type res)
: group(grp),
test(pos),
name(test_name),
result(res)
{
}
/**
* Constructor with exception.
*/
test_result(const std::string& grp,int pos,
const std::string& test_name, result_type res,
const std::exception& ex)
: group(grp),
test(pos),
name(test_name),
result(res),
message(ex.what()),
exception_typeid(typeid(ex).name())
{
}
/** Constructor with typeid.
*/
test_result(const std::string& grp,int pos,
const std::string& test_name, result_type res,
const std::string& ex_typeid,
const std::string& msg)
: group(grp),
test(pos),
name(test_name),
result(res),
message(msg),
exception_typeid(ex_typeid)
{
}
};
}
#endif