- max_score = i->total_score;
- if (!max_score)
- max_score = 1;
-
- if (!result)
- this_score = max_score;
- else if (i->score)
- this_score = i->score(m, result);
- else
- this_score = 0;
-
- bad = (this_score == 0);
- good = (this_score >= max_score);
-
- if (verbose || (!good && !quiet)) {
- printf(" %s: %s", i->name,
- bad ? "FAIL" : good ? "PASS" : "PARTIAL");
- if (max_score > 1)
- printf(" (+%u/%u)", this_score, max_score);
+ assert(score->score <= score->total);
+ if ((!score->pass && !quiet)
+ || (score->score < score->total && verbose)
+ || verbose > 1) {
+ printf("%s: %s", i->name, score->pass ? "PASS" : "FAIL");
+ if (score->total > 1)
+ printf(" (+%u/%u)", score->score, score->total);