]> git.ozlabs.org Git - ccan-lca-2011.git/blobdiff - tools/ccanlint/tests/run-coverage.c
ccanlint: rename structures to match keys
[ccan-lca-2011.git] / tools / ccanlint / tests / run-coverage.c
index a526d55e8237cf4ed58afac49cc30d208a1a5d20..af8d6f21c845948fbbae3cd1413cbfc6ac8e2938 100644 (file)
@@ -32,12 +32,16 @@ static bool find_source_file(const struct manifest *m, const char *filename)
        return false;
 }
 
-/* 1 point for 50%, 2 points for 75%, 3 points for 87.5%... */
+/* 1 point for 50%, 2 points for 75%, 3 points for 87.5%...  Bonus for 100%. */
 static unsigned int score_coverage(float covered, unsigned total)
 {
        float thresh, uncovered = 1.0 - covered;
        unsigned int i;
 
+       if (covered == 1.0)
+               return total;
+
+       total--;
        for (i = 0, thresh = 0.5; i < total; i++, thresh /= 2) {
                if (uncovered > thresh)
                        break;
@@ -112,7 +116,7 @@ static void analyze_coverage(struct manifest *m, bool full_gcov,
        if (total_lines == 0)
                score->total = score->score = 0;
        else {
-               score->total = 5;
+               score->total = 6;
                score->score = score_coverage(covered_lines / total_lines,
                                              score->total);
        }
@@ -158,10 +162,11 @@ static void do_run_coverage_tests(struct manifest *m,
        analyze_coverage(m, full_gcov, cmdout, score);
 }
 
-struct ccanlint run_coverage_tests = {
-       .key = "test-coverage",
-       .name = "Code coverage of module tests",
+struct ccanlint tests_coverage = {
+       .key = "tests_coverage",
+       .name = "Module's tests cover all the code",
        .check = do_run_coverage_tests,
+       .needs = "tests_compile_coverage tests_pass"
 };
 
-REGISTER_TEST(run_coverage_tests, &compile_coverage_tests, &run_tests, NULL);
+REGISTER_TEST(tests_coverage);