X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/e3e2d6326db86d7ca22d2cba1193aa64a8e33b2d..08dd72f2d8d3d7766e4fa87f01840c3ed8211091:/tests/tut/tut_console_reporter.hpp diff --git a/tests/tut/tut_console_reporter.hpp b/tests/tut/tut_console_reporter.hpp deleted file mode 100644 index 33856db8..00000000 --- a/tests/tut/tut_console_reporter.hpp +++ /dev/null @@ -1,274 +0,0 @@ -#ifndef TUT_CONSOLE_REPORTER -#define TUT_CONSOLE_REPORTER -#include -#include - -/** - * Template Unit Tests Framework for C++. - * http://tut.dozen.ru - * - * @author Vladimir Dyuzhev, Vladimir.Dyuzhev@gmail.com - */ -namespace -{ - -std::ostream& operator<<(std::ostream& os, const tut::test_result& tr) -{ - switch(tr.result) - { - case tut::test_result::ok: - os << '.'; - break; - case tut::test_result::fail: - os << '[' << tr.test << "=F]"; - break; - case tut::test_result::ex_ctor: - os << '[' << tr.test << "=C]"; - break; - case tut::test_result::ex: - os << '[' << tr.test << "=X]"; - break; - case tut::test_result::warn: - os << '[' << tr.test << "=W]"; - break; - case tut::test_result::term: - os << '[' << tr.test << "=T]"; - break; - case tut::test_result::rethrown: - os << '[' << tr.test << "=P]"; - break; - case tut::test_result::skipped: - os << '[' << tr.test << "=S]"; - break; - case tut::test_result::dummy: - throw tut::tut_error("console reporter called for dummy test result"); - } - - return os; -} - -} // end of namespace - -namespace tut -{ - -/** - * Default TUT callback handler. - */ -class console_reporter : public tut::callback -{ - std::string current_group; - typedef std::vector not_passed_list; - not_passed_list not_passed; - std::ostream& os; - - console_reporter(const console_reporter &); - console_reporter &operator=(const console_reporter &); -public: - - int ok_count; - int exceptions_count; - int failures_count; - int terminations_count; - int warnings_count; - int skipped_count; - - console_reporter() - : current_group(), - not_passed(), - os(std::cout), - ok_count(0), - exceptions_count(0), - failures_count(0), - terminations_count(0), - warnings_count(0), - skipped_count(0) - { - init(); - } - - console_reporter(std::ostream& out) - : current_group(), - not_passed(), - os(out), - ok_count(0), - exceptions_count(0), - failures_count(0), - terminations_count(0), - warnings_count(0), - skipped_count(0) - - { - init(); - } - - void run_started() - { - init(); - } - - void test_completed(const tut::test_result& tr) - { - if (tr.group != current_group) - { - os << std::endl << tr.group << ": " << std::flush; - current_group = tr.group; - } - - os << tr << std::flush; - - // update global statistics - switch (tr.result) { - case test_result::ok: - ok_count++; - break; - case test_result::fail: - case test_result::rethrown: - failures_count++; - break; - case test_result::ex: - case test_result::ex_ctor: - exceptions_count++; - break; - case test_result::warn: - warnings_count++; - break; - case test_result::term: - terminations_count++; - break; - case test_result::skipped: - skipped_count++; - break; - case tut::test_result::dummy: - assert( (tr.result != tut::test_result::dummy) && "Should never be called"); - } // switch - - if ( (tr.result != tut::test_result::ok) && - (tr.result != tut::test_result::skipped) ) - { - not_passed.push_back(tr); - } - } - - void run_completed() - { - os << std::endl; - - if (not_passed.size() > 0) - { - not_passed_list::const_iterator i = not_passed.begin(); - while (i != not_passed.end()) - { - tut::test_result tr = *i; - - os << std::endl; - - os << "---> " << "group: " << tr.group - << ", test: test<" << tr.test << ">" - << (!tr.name.empty() ? (std::string(" : ") + tr.name) : std::string()) - << std::endl; - -#if defined(TUT_USE_POSIX) - if(tr.pid != getpid()) - { - os << " child pid: " << tr.pid << std::endl; - } -#endif - os << " problem: "; - switch(tr.result) - { - case test_result::rethrown: - os << "assertion failed in child" << std::endl; - break; - case test_result::fail: - os << "assertion failed" << std::endl; - break; - case test_result::ex: - case test_result::ex_ctor: - os << "unexpected exception" << std::endl; - if( tr.exception_typeid != "" ) - { - os << " exception typeid: " - << tr.exception_typeid << std::endl; - } - break; - case test_result::term: - os << "would be terminated" << std::endl; - break; - case test_result::warn: - os << "test passed, but cleanup code (destructor) raised" - " an exception" << std::endl; - break; - default: - break; - } - - if (!tr.message.empty()) - { - if (tr.result == test_result::fail) - { - os << " failed assertion: `" << tr.message << "`" - << std::endl; - } - else - { - os << " message: `" << tr.message << "`" - << std::endl; - } - } - - ++i; - } - } - - os << std::endl; - - os << "tests summary:"; - if (terminations_count > 0) - { - os << " terminations:" << terminations_count; - } - if (exceptions_count > 0) - { - os << " exceptions:" << exceptions_count; - } - if (failures_count > 0) - { - os << " failures:" << failures_count; - } - if (warnings_count > 0) - { - os << " warnings:" << warnings_count; - } - - os << " ok:" << ok_count; - - if(skipped_count > 0) - { - os << " skipped:" << skipped_count; - } - os << std::endl; - } - - virtual bool all_ok() const - { - return not_passed.empty(); - } - -private: - - void init() - { - ok_count = 0; - exceptions_count = 0; - failures_count = 0; - terminations_count = 0; - warnings_count = 0; - skipped_count = 0; - not_passed.clear(); - } -}; - -} - -#endif