]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/ccanlint.c
ccanlint: yet more heuristics for compiling examples.
[ccan] / tools / ccanlint / ccanlint.c
index 8f4c5fe0aa959c8a410f004307735da78543ac72..d19ede6200e01ac2856c162f42c1c8f7c8936727 100644 (file)
@@ -107,7 +107,7 @@ static bool run_test(struct ccanlint *i,
                     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;
@@ -143,22 +143,25 @@ static bool run_test(struct ccanlint *i,
                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");
        }