summaryrefslogtreecommitdiff
path: root/obt/unittest_base.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2013-09-01 14:54:51 -0400
committerDana Jansens <danakj@orodu.net>2013-09-01 15:15:53 -0400
commit047a201498c4a108961a3d38e0707b78be378355 (patch)
tree65a1b3476bf8ffd153ec18a11e9aacf29a9c814b /obt/unittest_base.c
parent4c071270749c85b547fefe33c20c151f06df0616 (diff)
Fix bugs and add unit tests for BSEARCH()
Also adds running unit tests to the release/go script so we can be sure that all tests pass before we make a release.
Diffstat (limited to 'obt/unittest_base.c')
-rw-r--r--obt/unittest_base.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/obt/unittest_base.c b/obt/unittest_base.c
new file mode 100644
index 00000000..d6f91f4a
--- /dev/null
+++ b/obt/unittest_base.c
@@ -0,0 +1,55 @@
+#include <glib.h>
+
+#include "obt/unittest_base.h"
+
+guint g_test_failures = 0;
+guint g_test_failures_at_test_start = 0;
+const gchar* g_active_test_suite = NULL;
+const gchar* g_active_test_name = NULL;
+
+/* Add all test suites here. Keep them sorted. */
+extern void run_bsearch_unittest();
+
+gint main(gint argc, gchar **argv)
+{
+ /* Add all test suites here. Keep them sorted. */
+ run_bsearch_unittest();
+
+ return g_test_failures == 0 ? 0 : 1;
+}
+
+void unittest_start_suite(const char* suite_name)
+{
+ g_assert(g_active_test_suite == NULL);
+ g_active_test_suite = suite_name;
+ printf("[--------] %s\n", suite_name);
+}
+
+void unittest_end_suite()
+{
+ g_assert(g_active_test_suite);
+ printf("[--------] %s\n", g_active_test_suite);
+ printf("\n");
+ g_active_test_suite = NULL;
+}
+
+void unittest_start(const char* test_name)
+{
+ g_test_failures_at_test_start = g_test_failures;
+ g_assert(g_active_test_name == NULL);
+ g_active_test_name = test_name;
+ printf("[ RUN ] %s.%s\n", g_active_test_suite, g_active_test_name);
+}
+
+void unittest_end()
+{
+ g_assert(g_active_test_name);
+ if (g_test_failures_at_test_start == g_test_failures) {
+ printf("[ OK ] %s.%s\n",
+ g_active_test_suite, g_active_test_name);
+ } else {
+ printf("[ FAILED ] %s.%s\n",
+ g_active_test_suite, g_active_test_name);
+ }
+ g_active_test_name = NULL;
+}