#include "ThrowingTestReporter.h" #include "RequiredCheckException.h" #ifdef UNITTEST_NO_EXCEPTIONS #include "ReportAssertImpl.h" #endif namespace UnitTest { ThrowingTestReporter::ThrowingTestReporter(TestReporter* decoratedReporter) : m_decoratedReporter(decoratedReporter) {} //virtual ThrowingTestReporter::~ThrowingTestReporter() {} //virtual void ThrowingTestReporter::ReportTestStart(TestDetails const& test) { if(m_decoratedReporter) { m_decoratedReporter->ReportTestStart(test); } } //virtual void ThrowingTestReporter::ReportFailure(TestDetails const& test, char const* failure) { if(m_decoratedReporter) { m_decoratedReporter->ReportFailure(test, failure); } #ifndef UNITTEST_NO_EXCEPTIONS throw RequiredCheckException(); #else static const int stopTest = 1; UNITTEST_LONGJMP(*UnitTest::Detail::GetAssertJmpBuf(), stopTest); #endif } //virtual void ThrowingTestReporter::ReportTestFinish(TestDetails const& test, float secondsElapsed) { if(m_decoratedReporter) { m_decoratedReporter->ReportTestFinish(test, secondsElapsed); } } //virtual void ThrowingTestReporter::ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed) { if(m_decoratedReporter) { m_decoratedReporter->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed); } } }