- #include "ReportAssert.h" 
- #include "ReportAssertImpl.h" 
- #include "AssertException.h" 
- #include "CurrentTest.h" 
- #include "TestResults.h" 
- #include "TestDetails.h" 
-   
- #ifdef UNITTEST_NO_EXCEPTIONS 
-    #include "ReportAssertImpl.h" 
- #endif 
-   
- namespace UnitTest { 
-   
-    namespace 
-    { 
-       bool& AssertExpectedFlag() 
-       { 
-          static bool s_assertExpected = false; 
-          return s_assertExpected; 
-       } 
-    } 
-   
-    UNITTEST_LINKAGE void ReportAssert(char const* description, char const* filename, int lineNumber) 
-    { 
-       Detail::ReportAssertEx(CurrentTest::Results(), CurrentTest::Details(), 
-                              description, filename, lineNumber); 
-    } 
-   
-    namespace Detail { 
-   
- #ifdef UNITTEST_NO_EXCEPTIONS 
-       UNITTEST_JMPBUF* GetAssertJmpBuf() 
-       { 
-          static UNITTEST_JMPBUF s_jmpBuf; 
-          return &s_jmpBuf; 
-       } 
- #endif 
-   
-       UNITTEST_LINKAGE void ReportAssertEx(TestResults* testResults, 
-                                            const TestDetails* testDetails, 
-                                            char const* description, 
-                                            char const* filename, 
-                                            int lineNumber) 
-       { 
-          if (AssertExpectedFlag() == false) 
-          { 
-             TestDetails assertDetails(testDetails->testName, testDetails->suiteName, filename, lineNumber); 
-             testResults->OnTestFailure(assertDetails, description); 
-          } 
-   
-          ExpectAssert(false); 
-   
- #ifndef UNITTEST_NO_EXCEPTIONS 
-          throw AssertException(); 
- #else 
-          UNITTEST_JUMP_TO_ASSERT_JUMP_TARGET(); 
- #endif 
-       } 
-   
-       UNITTEST_LINKAGE void ExpectAssert(bool expected) 
-       { 
-          AssertExpectedFlag() = expected; 
-       } 
-   
-       UNITTEST_LINKAGE bool AssertExpected() 
-       { 
-          return AssertExpectedFlag(); 
-       } 
-   
-    } 
- } 
-