summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/unittest-cpp/UnitTest++/TestRunner.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/unittest-cpp/UnitTest++/TestRunner.h')
-rw-r--r--3rdparty/unittest-cpp/UnitTest++/TestRunner.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/3rdparty/unittest-cpp/UnitTest++/TestRunner.h b/3rdparty/unittest-cpp/UnitTest++/TestRunner.h
new file mode 100644
index 00000000000..f88b9cc6281
--- /dev/null
+++ b/3rdparty/unittest-cpp/UnitTest++/TestRunner.h
@@ -0,0 +1,61 @@
+#ifndef UNITTEST_TESTRUNNER_H
+#define UNITTEST_TESTRUNNER_H
+
+#include "Test.h"
+#include "TestList.h"
+#include "CurrentTest.h"
+
+namespace UnitTest {
+
+class TestReporter;
+class TestResults;
+class Timer;
+
+UNITTEST_LINKAGE int RunAllTests();
+
+struct True
+{
+ bool operator()(const Test* const) const
+ {
+ return true;
+ }
+};
+
+class UNITTEST_LINKAGE TestRunner
+{
+public:
+ explicit TestRunner(TestReporter& reporter);
+ ~TestRunner();
+
+ template< class Predicate >
+ int RunTestsIf(TestList const& list, char const* suiteName,
+ const Predicate& predicate, int maxTestTimeInMs) const
+ {
+ Test* curTest = list.GetHead();
+
+ while (curTest != 0)
+ {
+ if (IsTestInSuite(curTest, suiteName) && predicate(curTest))
+ RunTest(m_result, curTest, maxTestTimeInMs);
+
+ curTest = curTest->m_nextTest;
+ }
+
+ return Finish();
+ }
+
+ TestResults* GetTestResults();
+
+private:
+ TestReporter* m_reporter;
+ TestResults* m_result;
+ Timer* m_timer;
+
+ int Finish() const;
+ bool IsTestInSuite(const Test* const curTest, char const* suiteName) const;
+ void RunTest(TestResults* const result, Test* const curTest, int const maxTestTimeInMs) const;
+};
+
+}
+
+#endif