X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Ftests_coverage.c;h=3d5216ffebd9495568b9045d4d5c3e9eca42cc06;hb=932d65dd6537250e617516749f03a00fea3b34f6;hp=26be85534d0392a4069ebad42d99c06440ed7fa6;hpb=b931f4765272d68de3b5e35d70c1933c27bcdea4;p=ccan diff --git a/tools/ccanlint/tests/tests_coverage.c b/tools/ccanlint/tests/tests_coverage.c index 26be8553..3d5216ff 100644 --- a/tools/ccanlint/tests/tests_coverage.c +++ b/tools/ccanlint/tests/tests_coverage.c @@ -60,13 +60,19 @@ static void analyze_coverage(struct manifest *m, bool full_gcov, bool lines_matter = false; /* - Output looks like: + Output looks like: (gcov 4.6.3) File '../../../ccan/tdb2/private.h' Lines executed:0.00% of 8 /home/ccan/ccan/tdb2/test/run-simple-delete.c:creating 'run-simple-delete.c.gcov' File '../../../ccan/tdb2/tdb.c' Lines executed:0.00% of 450 + + For gcov 4.7.2: + + File '/home/dwg/src/ccan/ccan/rfc822/test/run-check-check.c' + Lines executed:100.00% of 19 + Creating 'run-check-check.c.gcov' */ for (i = 0; lines[i]; i++) { @@ -86,7 +92,9 @@ static void analyze_coverage(struct manifest *m, bool full_gcov, errx(1, "Could not parse line '%s'", lines[i]); total_lines += of; covered_lines += ex / 100.0 * of; - } else if (full_gcov && strstr(lines[i], ":creating '")) { + } else if (full_gcov + && (strstr(lines[i], ":creating '") + || strstarts(lines[i], "Creating '"))) { char *file, *filename, *apostrophe; apostrophe = strchr(lines[i], '\''); filename = apostrophe + 1; @@ -127,7 +135,6 @@ static void analyze_coverage(struct manifest *m, bool full_gcov, } static void do_run_coverage_tests(struct manifest *m, - bool keep, unsigned int *timeleft, struct score *score) { struct ccan_file *i; @@ -144,21 +151,11 @@ static void do_run_coverage_tests(struct manifest *m, full_gcov ? "" : "-n", outdir); - /* Unlink these files afterwards. */ - if (!keep) { - talloc_set_destructor(talloc_asprintf(score, - "%s/run.gcno", outdir), - unlink_file_destructor); - talloc_set_destructor(talloc_asprintf(score, - "%s/run.gcda", outdir), - unlink_file_destructor); - } - /* Run them all. */ foreach_ptr(list, &m->run_tests, &m->api_tests) { list_for_each(list, i, list) { if (run_command(score, timeleft, &cmdout, - "%s", i->cov_compiled)) { + "%s", i->compiled[COMPILE_COVERAGE])) { covcmd = talloc_asprintf_append(covcmd, " %s", i->fullname); } else {