printf("%s%s", score->error,
strends(score->error, "\n") ? "" : "\n");
}
- if (!quiet && !score->pass && i->handle)
- i->handle(m, score);
}
+ if (!quiet && score->score < score->total && i->handle)
+ i->handle(m, score);
*running_score += score->score;
*running_total += score->total;
int main(int argc, char *argv[])
{
- bool summary = false;
+ bool summary = false, pass = true;
unsigned int score = 0, total_score = 0;
struct manifest *m;
struct ccanlint *i;
add_info_options(m->info_file, !target);
while ((i = get_next_test(&normal_tests)) != NULL)
- run_test(i, summary, &score, &total_score, m);
+ pass &= run_test(i, summary, &score, &total_score, m);
printf("%sTotal score: %u/%u\n", prefix, score, total_score);
- return 0;
+ return pass ? 0 : 1;
}