summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/unittest-cpp/tests/ScopedCurrentTest.h
diff options
context:
space:
mode:
author ImJezze <jezze@gmx.net>2015-05-30 14:57:13 +0200
committer ImJezze <jezze@gmx.net>2015-05-30 14:57:13 +0200
commitd1d9dfc2d4be85cee8c8c990950d72ee6df78e5e (patch)
tree495d4e5a066ee13be131f08437732b3588d43a42 /3rdparty/unittest-cpp/tests/ScopedCurrentTest.h
parentfe71f92dd24270ae7c5621166b096c665ca0e4f5 (diff)
parent51709eef04f9f0c6d621447c568e170927fa9472 (diff)
Merge pull request #4 from mamedev/master
Sync to base master
Diffstat (limited to '3rdparty/unittest-cpp/tests/ScopedCurrentTest.h')
-rw-r--r--3rdparty/unittest-cpp/tests/ScopedCurrentTest.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/3rdparty/unittest-cpp/tests/ScopedCurrentTest.h b/3rdparty/unittest-cpp/tests/ScopedCurrentTest.h
new file mode 100644
index 00000000000..60b1a8e0c1c
--- /dev/null
+++ b/3rdparty/unittest-cpp/tests/ScopedCurrentTest.h
@@ -0,0 +1,37 @@
+#ifndef UNITTEST_SCOPEDCURRENTTEST_H
+#define UNITTEST_SCOPEDCURRENTTEST_H
+
+#include "UnitTest++/CurrentTest.h"
+#include <cstddef>
+
+class ScopedCurrentTest
+{
+public:
+ ScopedCurrentTest()
+ : m_oldTestResults(UnitTest::CurrentTest::Results())
+ , m_oldTestDetails(UnitTest::CurrentTest::Details())
+ {
+ }
+
+ explicit ScopedCurrentTest(UnitTest::TestResults& newResults, const UnitTest::TestDetails* newDetails = NULL)
+ : m_oldTestResults(UnitTest::CurrentTest::Results())
+ , m_oldTestDetails(UnitTest::CurrentTest::Details())
+ {
+ UnitTest::CurrentTest::Results() = &newResults;
+
+ if (newDetails != NULL)
+ UnitTest::CurrentTest::Details() = newDetails;
+ }
+
+ ~ScopedCurrentTest()
+ {
+ UnitTest::CurrentTest::Results() = m_oldTestResults;
+ UnitTest::CurrentTest::Details() = m_oldTestDetails;
+ }
+
+private:
+ UnitTest::TestResults* m_oldTestResults;
+ const UnitTest::TestDetails* m_oldTestDetails;
+};
+
+#endif