aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/unit++/main.h
diff options
context:
space:
mode:
authorLaurent Richard <[email protected]>2004-10-07 11:02:31 +0000
committerLaurent Richard <[email protected]>2004-10-07 11:02:31 +0000
commit27fb7a5b96462dc22fff821789ad382804579b28 (patch)
tree90eff8fc95db9e9b1a32da52dc993da6a2cf2f77 /tests/lib/unit++/main.h
parentAdded FLAG_PASSED message flag to indicate a forwarded message (used in maild... (diff)
downloadvmime-27fb7a5b96462dc22fff821789ad382804579b28.tar.gz
vmime-27fb7a5b96462dc22fff821789ad382804579b28.zip
New unit test system: Unit++.
Added test for header::getAllByName/Type
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);
+};
+}