diff --git a/UnitTest++/RequireMacros.h b/UnitTest++/RequireMacros.h index f20353a..ea1f6b9 100644 --- a/UnitTest++/RequireMacros.h +++ b/UnitTest++/RequireMacros.h @@ -8,7 +8,7 @@ #endif #ifndef UNITTEST_NO_EXCEPTIONS - #define REQUIRE for(UnitTest::RequiredCheckTestReporter decoratedReporter(UnitTest::CurrentTest::Results()); decoratedReporter.Next(); ) + #define REQUIRE for(UnitTest::RequiredCheckTestReporter decoratedReporter(*UnitTest::CurrentTest::Results()); decoratedReporter.Next(); ) #endif #ifdef UNITTEST_NO_EXCEPTIONS diff --git a/UnitTest++/RequiredCheckTestReporter.cpp b/UnitTest++/RequiredCheckTestReporter.cpp index 689827a..7c21d20 100644 --- a/UnitTest++/RequiredCheckTestReporter.cpp +++ b/UnitTest++/RequiredCheckTestReporter.cpp @@ -5,21 +5,18 @@ namespace UnitTest { - RequiredCheckTestReporter::RequiredCheckTestReporter(TestResults* results) + RequiredCheckTestReporter::RequiredCheckTestReporter(TestResults& results) : m_results(results) - , m_throwingReporter(0) + , m_originalTestReporter(results.m_testReporter) + , m_throwingReporter(results.m_testReporter) , m_continue(0) { - if(m_results) - { - m_throwingReporter.SetDecorated(m_results->m_testReporter); - m_results->m_testReporter = &m_throwingReporter; - } + m_results.m_testReporter = &m_throwingReporter; } RequiredCheckTestReporter::~RequiredCheckTestReporter() { - if(m_results) m_results->m_testReporter = m_throwingReporter.GetDecorated(); + m_results.m_testReporter = m_originalTestReporter; } bool RequiredCheckTestReporter::Next() diff --git a/UnitTest++/RequiredCheckTestReporter.h b/UnitTest++/RequiredCheckTestReporter.h index 220ae9b..117ae01 100644 --- a/UnitTest++/RequiredCheckTestReporter.h +++ b/UnitTest++/RequiredCheckTestReporter.h @@ -13,13 +13,14 @@ namespace UnitTest { class UNITTEST_LINKAGE RequiredCheckTestReporter { public: - explicit RequiredCheckTestReporter(TestResults* results); + explicit RequiredCheckTestReporter(TestResults& results); ~RequiredCheckTestReporter(); bool Next(); private: - TestResults* m_results; + TestResults& m_results; + TestReporter* m_originalTestReporter; ThrowingTestReporter m_throwingReporter; int m_continue; }; diff --git a/UnitTest++/ThrowingTestReporter.cpp b/UnitTest++/ThrowingTestReporter.cpp index acdc38c..7fb670b 100644 --- a/UnitTest++/ThrowingTestReporter.cpp +++ b/UnitTest++/ThrowingTestReporter.cpp @@ -36,14 +36,4 @@ namespace UnitTest { if(m_decoratedReporter) m_decoratedReporter->ReportSummary(totalTestCount, failedTestCount, failureCount, secondsElapsed); } - TestReporter* ThrowingTestReporter::GetDecorated() const - { - return m_decoratedReporter; - } - - void ThrowingTestReporter::SetDecorated(TestReporter* reporter) - { - m_decoratedReporter = reporter; - } - } diff --git a/UnitTest++/ThrowingTestReporter.h b/UnitTest++/ThrowingTestReporter.h index 15766b8..34e105e 100644 --- a/UnitTest++/ThrowingTestReporter.h +++ b/UnitTest++/ThrowingTestReporter.h @@ -18,9 +18,6 @@ namespace UnitTest { virtual void ReportTestFinish(TestDetails const& test, float secondsElapsed); virtual void ReportSummary(int totalTestCount, int failedTestCount, int failureCount, float secondsElapsed); - TestReporter* GetDecorated() const; - void SetDecorated(TestReporter* reporter); - private: TestReporter* m_decoratedReporter; };