From b3a47758b62c98a3a981e7b822e68c37380831e3 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 4 Jan 2011 21:11:47 +1030 Subject: [PATCH] ccanlint: have valgrind fail with an error, always The upcoming failtest module can only tell that a child failed when it exits with a non-zero error. So we need this, although it means for ccanlint it still needs to look at output to distinguish a memory leak from a real error. --- tools/ccanlint/tests/run_tests_valgrind.c | 34 +++++++++++------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/tools/ccanlint/tests/run_tests_valgrind.c b/tools/ccanlint/tests/run_tests_valgrind.c index b5e4eff8..ec3a3198 100644 --- a/tools/ccanlint/tests/run_tests_valgrind.c +++ b/tools/ccanlint/tests/run_tests_valgrind.c @@ -108,26 +108,24 @@ static void do_run_tests_vg(struct manifest *m, score->total++; /* FIXME: Valgrind's output sucks. XML is unreadable by * humans, and you can't have both. */ - if (run_command(score, timeleft, &cmdout, - "valgrind -q --leak-check=full" - " --log-fd=3 %s %s" - " 3> valgrind.log", - run_tests_vg.options ? - run_tests_vg.options : "", - i->compiled)) { - output = grab_file(i, "valgrind.log", NULL); - if (!output || output[0] == '\0') { - err = NULL; - } else { - i->leak_info = get_leaks(output, &err); - } - if (err) { - score_file_error(score, i, 0, err); - } else - score->score++; + run_command(score, timeleft, &cmdout, + "valgrind -q --error-exitcode=101" + " --leak-check=full" + " --log-fd=3 %s %s" + " 3> valgrind.log", + run_tests_vg.options ? + run_tests_vg.options : "", + i->compiled); + output = grab_file(i, "valgrind.log", NULL); + if (!output || output[0] == '\0') { + err = NULL; } else { - score_file_error(score, i, 0, cmdout); + i->leak_info = get_leaks(output, &err); } + if (err) + score_file_error(score, i, 0, err); + else + score->score++; } } -- 2.39.2