- dgraph_traverse_from(&i->node, skip_node,
- i->skip_fail ? "dependency failed" : NULL);
- dgraph_clear_node(&i->node);
- return i->skip_fail ? false : true;
+ if (i->can_run) {
+ i->skip = i->can_run(run->m);
+ if (i->skip) {
+ /* Test doesn't apply, or can't run? That's OK. */
+ if (verbose > 1)
+ printf("%s%s: skipped (%s)\n",
+ run->prefix, i->name, i->skip);
+ /* Mark our dependencies to skip. */
+ dgraph_traverse_from(&i->node, cannot_run, NULL);
+ score->pass = true;
+ score->total = 0;
+ goto out;
+ }