Skip to content
Snippets Groups Projects
Commit 3172b4db authored by Aaron Terrell (Enus)'s avatar Aaron Terrell (Enus)
Browse files

forcing all the teamcity service messages to be spat out at once per suite to...

forcing all the teamcity service messages to be spat out at once per suite to avoid incorrect TC reporting
parent 334c04ce
No related branches found
No related tags found
No related merge requests found
...@@ -83,11 +83,11 @@ class LLTestCallback : public tut::callback ...@@ -83,11 +83,11 @@ class LLTestCallback : public tut::callback
} }
virtual void group_started(const std::string& name) { virtual void group_started(const std::string& name) {
std::cout << "group_started name=" << name << std::endl; std::cout << "Unit test group_started name=" << name << std::endl;
} }
virtual void group_completed(const std::string& name) { virtual void group_completed(const std::string& name) {
std::cout << "group_completed name=" << name << std::endl; std::cout << "Unit test group_completed name=" << name << std::endl;
} }
virtual void test_completed(const tut::test_result& tr) virtual void test_completed(const tut::test_result& tr)
...@@ -192,7 +192,8 @@ class LLTCTestCallback : public LLTestCallback ...@@ -192,7 +192,8 @@ class LLTCTestCallback : public LLTestCallback
{ {
public: public:
LLTCTestCallback(bool verbose_mode, std::ostream *stream) : LLTCTestCallback(bool verbose_mode, std::ostream *stream) :
LLTestCallback(verbose_mode, stream) LLTestCallback(verbose_mode, stream),
mTCStream()
{ {
} }
...@@ -202,12 +203,12 @@ class LLTCTestCallback : public LLTestCallback ...@@ -202,12 +203,12 @@ class LLTCTestCallback : public LLTestCallback
virtual void group_started(const std::string& name) { virtual void group_started(const std::string& name) {
LLTestCallback::group_started(name); LLTestCallback::group_started(name);
std::cout << "\n##teamcity[testSuiteStarted name='" << name << "']\n" << std::flush; mTCStream << "\n##teamcity[testSuiteStarted name='" << name << "']" << std::endl;
} }
virtual void group_completed(const std::string& name) { virtual void group_completed(const std::string& name) {
LLTestCallback::group_completed(name); LLTestCallback::group_completed(name);
std::cout << "\n##teamcity[testSuiteFinished name='" << name << "']\n" << std::flush; mTCStream << "##teamcity[testSuiteFinished name='" << name << "']" << std::endl;
} }
virtual void test_completed(const tut::test_result& tr) virtual void test_completed(const tut::test_result& tr)
...@@ -217,33 +218,33 @@ class LLTCTestCallback : public LLTestCallback ...@@ -217,33 +218,33 @@ class LLTCTestCallback : public LLTestCallback
switch(tr.result) switch(tr.result)
{ {
case tut::test_result::ok: case tut::test_result::ok:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
case tut::test_result::fail: case tut::test_result::fail:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']\n" << std::flush; mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
case tut::test_result::ex: case tut::test_result::ex:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']\n" << std::flush; mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
case tut::test_result::warn: case tut::test_result::warn:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']\n" << std::flush; mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
case tut::test_result::term: case tut::test_result::term:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']\n" << std::flush; mTCStream << "##teamcity[testFailed name='" << tr.group << "." << tr.test << "' message='" << tr.message << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
case tut::test_result::skip: case tut::test_result::skip:
std::cout << "\n##teamcity[testStarted name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testStarted name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testIgnored name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testIgnored name='" << tr.group << "." << tr.test << "']" << std::endl;
std::cout << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']\n" << std::flush; mTCStream << "##teamcity[testFinished name='" << tr.group << "." << tr.test << "']" << std::endl;
break; break;
default: default:
break; break;
...@@ -251,6 +252,24 @@ class LLTCTestCallback : public LLTestCallback ...@@ -251,6 +252,24 @@ class LLTCTestCallback : public LLTestCallback
} }
virtual void run_completed()
{
LLTestCallback::run_completed();
// dump the TC reporting results to cout
tc_run_completed_(std::cout);
}
virtual void tc_run_completed_(std::ostream &stream)
{
// dump the TC reporting results to cout
stream << mTCStream.str() << std::endl;
}
protected:
std::ostringstream mTCStream;
}; };
...@@ -422,7 +441,7 @@ int main(int argc, char **argv) ...@@ -422,7 +441,7 @@ int main(int argc, char **argv)
} }
else else
{ {
mycallback = new LLTCTestCallback(verbose_mode, output); mycallback = new LLTestCallback(verbose_mode, output);
} }
tut::runner.get().set_callback(mycallback); tut::runner.get().set_callback(mycallback);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment