else
this_score = 0;
+ list_del(&i->list);
+ list_add_tail(&finished_tests, &i->list);
+
*score += this_score;
if (summary) {
printf("%s FAILED (%u/%u)\n",
if (verbose)
indent_print(i->describe(m, result));
- list_del(&i->list);
- list_add_tail(&finished_tests, &i->list);
- return false;
+ } else {
+ printf("%s\n", i->describe(m, result));
+
+ if (i->handle)
+ i->handle(m, result);
}
- printf("%s\n", i->describe(m, result));
+ /* Skip any tests which depend on this one. */
+ list_for_each(&i->dependencies, d, node) {
+ list_del(&d->dependent->list);
+ list_add(&finished_tests, &d->dependent->list);
+ if (verbose)
+ printf(" -> skipping %s\n", d->dependent->name);
+ *total_score += d->dependent->total_score;
+ }
- if (i->handle)
- i->handle(m, result);
- list_del(&i->list);
- list_add_tail(&finished_tests, &i->list);
return false;
}