+2006-08-18 Aaron Bockover <abockover@novell.com>
+
+ * test/test.[ch]:
+ * test/driver.c: Support pass/fail logging on tests to show group report
+
2006-08-18 Aaron Bockover <abockover@novell.com>
* test/test.c:
}
if(run) {
- run_group(&(test_groups[j]));
+ gint total, passed;
+ run_group(&(test_groups[j]), &total, &passed);
+ printf(" -- %d / %d (%g%%) --\n", passed, total,
+ ((gdouble)passed / (gdouble)total) * 100.0);
}
}
}
static gchar *last_result = NULL;
-void
+gboolean
run_test(Test *test)
{
gchar *result;
fflush(stdout);
if((result = test->handler()) == NULL) {
printf("OK\n");
+ return TRUE;
} else {
printf("FAILED (%s)\n", result);
if(last_result == result) {
last_result = NULL;
g_free(result);
}
+
+ return FALSE;
}
}
void
-run_group(Group *group)
+run_group(Group *group, gint *total, gint *passed)
{
Test *tests = group->handler();
- gint i;
-
+ gint i, _passed = 0;
+
printf("[%s]\n", group->name);
for(i = 0; tests[i].name != NULL; i++) {
- run_test(&(tests[i]));
+ _passed += run_test(&(tests[i]));
+ }
+
+ if(total != NULL) {
+ *total = i;
+ }
+
+ if(passed != NULL) {
+ *passed = _passed;
}
}
LoadGroupHandler handler;
};
-void run_test(Test *test);
-void run_group(Group *group);
+gboolean run_test(Test *test);
+void run_group(Group *group, gint *total, gint *passed);
gchar *result(const gchar *format, ...);
#define DEFINE_TEST_GROUP_INIT(name, table) \