summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp')
-rw-r--r--3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp b/3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp
new file mode 100644
index 00000000000..7a9a63a6561
--- /dev/null
+++ b/3rdparty/unittest-cpp/UnitTest++/ReportAssert.cpp
@@ -0,0 +1,70 @@
+#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();
+}
+
+}}