X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Frun-coverage.c;h=af8d6f21c845948fbbae3cd1413cbfc6ac8e2938;hb=2926cafb52b9d95646d9dafa877d53f2368d8b2c;hp=a526d55e8237cf4ed58afac49cc30d208a1a5d20;hpb=03a596908b779bbb4b7c2f739c5e238f8c5d6390;p=ccan-lca-2011.git diff --git a/tools/ccanlint/tests/run-coverage.c b/tools/ccanlint/tests/run-coverage.c index a526d55..af8d6f2 100644 --- a/tools/ccanlint/tests/run-coverage.c +++ b/tools/ccanlint/tests/run-coverage.c @@ -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);