aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/unit++/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/unit++/main.h')
-rw-r--r--tests/lib/unit++/main.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/lib/unit++/main.h b/tests/lib/unit++/main.h
new file mode 100644
index 00000000..3a871c52
--- /dev/null
+++ b/tests/lib/unit++/main.h
@@ -0,0 +1,63 @@
+// Copyright (C) 2001 Claus Dr�by
+// Terms of use are in the file COPYING
+#include <iostream>
+#include "tester.h"
+#include "optmap.h"
+
+/**
+ * The main of a test program that executes the main test suite and then
+ * reports the summary.
+ *
+ * A #-v# or #--verbose# will turn on verbose, that reports succesful test
+ * cases; the default behaviour is to report only those that fails.
+ */
+int main(int argc, const char* argv[]);
+
+/// @name{unitpp}
+namespace unitpp {
+
+/**
+ * The verbose flag, in case somebody wants to piggyback it with more
+ * meaning.
+ */
+extern bool verbose;
+
+/**
+ * A runner is the base class for the objects that actually processes the
+ * tests from main. Main simply invokes the run_tests method of the current
+ * test runner.
+ * \Ref{main}
+ */
+class test_runner {
+public:
+ virtual ~test_runner();
+ /**
+ * run all the tests with arguments in the argc, argv set
+ */
+ virtual bool run_tests(int argc, const char** argv) = 0;
+};
+/**
+ * Sets the test_runner to be used in testing. This hook allows another
+ * tester to hook into the main function and replace the traditional tester.
+ */
+void set_tester(test_runner*);
+
+/// A plain test runner for the ordinary text version.
+class plain_runner : public test_runner {
+public:
+ /// Run the tests specified in argv, starting at i.
+ virtual bool run_tests(int argc, const char** argv);
+private:
+/**
+ * Run a test found in the suite::main() test by id. If id is empty run the
+ * main test.
+ * @name run_test-id
+ * @return true, if the test was totally succesful.
+ */
+bool run_test(const std::string& id = "");
+/// Run the test and return true if succesful. @see{run_test-id}
+bool run_test(test*);
+/// find the test with the given id
+test* find_test(const std::string& id);
+};
+}