131 lines
2.4 KiB
C++
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
|