struct manifest *m)
{
void *result;
- unsigned int this_score, timeleft;
+ unsigned int this_score, max_score, timeleft;
const struct dependent *d;
const char *skip;
bool bad, good;
goto skip;
}
+ max_score = i->total_score;
+ if (!max_score)
+ max_score = 1;
+
if (!result)
- this_score = i->total_score ? i->total_score : 1;
+ 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 >= i->total_score);
+ good = (this_score >= max_score);
- if (verbose || (bad && !quiet)) {
+ if (verbose || (!good && !quiet)) {
printf(" %s: %s", i->name,
bad ? "FAIL" : good ? "PASS" : "PARTIAL");
- if (i->total_score)
- printf(" (+%u/%u)",
- this_score, i->total_score);
+ if (max_score > 1)
+ printf(" (+%u/%u)", this_score, max_score);
printf("\n");
}
struct btree *keys, *names;
#undef REGISTER_TEST
-#define REGISTER_TEST(name, ...) register_test(&normal_tests, &name, __VA_ARGS__)
+#define REGISTER_TEST(name, ...) register_test(&normal_tests, &name, __VA_ARGS__, NULL)
#include "generated-normal-tests"
#undef REGISTER_TEST
-#define REGISTER_TEST(name, ...) register_test(&compulsory_tests, &name, __VA_ARGS__)
+#define REGISTER_TEST(name, ...) register_test(&compulsory_tests, &name, __VA_ARGS__, NULL)
#include "generated-compulsory-tests"
/* Self-consistency check: make sure no two tests
if (optind < argc)
usage(argv[0]);
+ if (verbose >= 2)
+ compile_verbose = true;
if (verbose >= 3)
tools_verbose = true;