X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Ftests_pass_valgrind.c;h=773a85e66a5a17aca87595bb0ca8f67441158a2e;hb=87c679ff36d7b198862cd2652a384d90f89f3b2b;hp=818143777e2571e934bc59e98d215a1b3bf7bfcf;hpb=b931f4765272d68de3b5e35d70c1933c27bcdea4;p=ccan diff --git a/tools/ccanlint/tests/tests_pass_valgrind.c b/tools/ccanlint/tests/tests_pass_valgrind.c index 81814377..773a85e6 100644 --- a/tools/ccanlint/tests/tests_pass_valgrind.c +++ b/tools/ccanlint/tests/tests_pass_valgrind.c @@ -18,9 +18,6 @@ #include #include -REGISTER_TEST(tests_pass_valgrind); -REGISTER_TEST(tests_pass_valgrind_noleaks); - /* Note: we already test safe_mode in run_tests.c */ static const char *can_run_vg(struct manifest *m) { @@ -29,6 +26,20 @@ static const char *can_run_vg(struct manifest *m) return NULL; } +static void do_leakcheck_vg(struct manifest *m, + unsigned int *timeleft, + struct score *score); + +static struct ccanlint tests_pass_valgrind_noleaks = { + .key = "tests_pass_valgrind_noleaks", + .name = "Module's run and api tests have no memory leaks", + .check = do_leakcheck_vg, + .takes_options = true, + .needs = "tests_pass_valgrind" +}; +REGISTER_TEST(tests_pass_valgrind_noleaks); + + /* Example output: ==2749== Conditional jump or move depends on uninitialised value(s) ==2749== at 0x4026C60: strnlen (mc_replace_strmem.c:263) @@ -146,7 +157,6 @@ static const char *concat(struct score *score, char *bits[]) /* FIXME: Run examples, too! */ static void do_run_tests_vg(struct manifest *m, - bool keep, unsigned int *timeleft, struct score *score) { @@ -165,11 +175,10 @@ static void do_run_tests_vg(struct manifest *m, options = concat(score, per_file_options(&tests_pass_valgrind, i)); - if (streq(options, "FAIL")) + if (streq(options, "FAIL")) { + i->leak_info = NULL; continue; - - if (keep) - talloc_set_destructor(i->valgrind_log, NULL); + } output = grab_file(i, i->valgrind_log, NULL); /* No valgrind errors? */ @@ -189,7 +198,6 @@ static void do_run_tests_vg(struct manifest *m, } static void do_leakcheck_vg(struct manifest *m, - bool keep, unsigned int *timeleft, struct score *score) { @@ -260,12 +268,4 @@ struct ccanlint tests_pass_valgrind = { .takes_options = true, .needs = "tests_pass" }; - -struct ccanlint tests_pass_valgrind_noleaks = { - .key = "tests_pass_valgrind_noleaks", - .name = "Module's run and api tests have no memory leaks", - .check = do_leakcheck_vg, - .takes_options = true, - .needs = "tests_pass_valgrind" -}; - +REGISTER_TEST(tests_pass_valgrind);