X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/e3e2d6326db86d7ca22d2cba1193aa64a8e33b2d..08dd72f2d8d3d7766e4fa87f01840c3ed8211091:/tests/tut/tut_cppunit_reporter.hpp diff --git a/tests/tut/tut_cppunit_reporter.hpp b/tests/tut/tut_cppunit_reporter.hpp deleted file mode 100644 index 62646b09..00000000 --- a/tests/tut/tut_cppunit_reporter.hpp +++ /dev/null @@ -1,218 +0,0 @@ - -#ifndef TUT_CPPUNIT_REPORTER -#define TUT_CPPUNIT_REPORTER - -#include -#include -#include -#include -#include -#include - -namespace tut -{ - -/** - * CppUnit TUT reporter - */ -class cppunit_reporter : public tut::callback -{ - std::vector failed_tests_; - std::vector passed_tests_; - const std::string filename_; - std::auto_ptr stream_; - - - cppunit_reporter(const cppunit_reporter &); - cppunit_reporter &operator=(const cppunit_reporter &); - -public: - explicit cppunit_reporter(const std::string &filename = "testResult.xml") - : failed_tests_(), - passed_tests_(), - filename_(filename), - stream_(new std::ofstream(filename_.c_str())) - { - if (!stream_->good()) { - throw tut_error("Cannot open output file `" + filename_ + "`"); - } - } - - explicit cppunit_reporter(std::ostream &stream) - : failed_tests_(), - passed_tests_(), - filename_(), - stream_(&stream) - { - } - - ~cppunit_reporter() - { - if(filename_.empty()) - { - stream_.release(); - } - } - - void run_started() - { - failed_tests_.clear(); - passed_tests_.clear(); - } - - void test_completed(const tut::test_result& tr) - { - assert(tr.result != test_result::dummy ); - if ( (tr.result == test_result::ok) || - (tr.result == test_result::skipped) ) - { - passed_tests_.push_back(tr); - } - else - { - failed_tests_.push_back(tr); - } - } - - void run_completed() - { - int errors = 0; - int failures = 0; - std::string failure_type; - std::string failure_msg; - - *stream_ << "" << std::endl - << "" << std::endl; - - if (failed_tests_.size() > 0) - { - *stream_ << " " << std::endl; - - for (unsigned int i=0; i" << std::endl - << " " << encode(failed_tests_[i].group) + "::" + encode(failed_tests_[i].name) << "" << std::endl - << " " << failure_type << "" << std::endl - << " " << std::endl - << " Unknown" << std::endl - << " Unknown" << std::endl - << " " << std::endl - << " " << encode(failure_msg + failed_tests_[i].message) << "" << std::endl - << " " << std::endl; - } - - *stream_ << " " << std::endl; - } - - /* *********************** passed tests ***************************** */ - if (passed_tests_.size() > 0) { - *stream_ << " " << std::endl; - - for (unsigned int i=0; i" << std::endl - << " " << encode(passed_tests_[i].group) + "::" + encode(passed_tests_[i].name) << "" << std::endl - << " " << std::endl; - } - - *stream_ << " " << std::endl; - } - - /* *********************** statistics ***************************** */ - *stream_ << " " << std::endl - << " " << (failed_tests_.size() + passed_tests_.size()) << "" << std::endl - << " " << failed_tests_.size() << "" << std::endl - << " " << errors << "" << std::endl - << " " << failures << "" << std::endl - << " " << std::endl; - - /* *********************** footer ***************************** */ - *stream_ << "" << std::endl; - } - - virtual bool all_ok() const - { - return failed_tests_.empty(); - } - - /** - * \brief Encodes text to XML - * XML-reserved characters (e.g. "<") are encoded according to specification - * @param text text to be encoded - * @return encoded string - */ - static std::string encode(const std::string & text) - { - std::string out; - - for (unsigned int i=0; i': - out += ">"; - break; - case '&': - out += "&"; - break; - case '\'': - out += "'"; - break; - case '"': - out += """; - break; - default: - out += c; - } - } - - return out; - } -}; - -} - -#endif -