utf8: don't allow NUL in decoded strings.
[ccan] / tools / ccanlint / tests / tests_coverage.c
index 2a7bf635eab22363f20c70722e69539e1446267b..e29572019141e81fd8b77a4abc4e1d7931170860 100644 (file)
@@ -2,6 +2,7 @@
 #include <tools/tools.h>
 #include <ccan/str/str.h>
 #include <ccan/tal/path/path.h>
+#include <ccan/tal/grab_file/grab_file.h>
 #include <ccan/foreach/foreach.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -99,7 +100,7 @@ static void analyze_coverage(struct manifest *m, bool full_gcov,
                        apostrophe = strchr(filename, '\'');
                        *apostrophe = '\0';
                        if (lines_matter) {
-                               file = tal_grab_file(score, filename, NULL);
+                               file = grab_file(score, filename);
                                if (!file) {
                                        score->error = tal_fmt(score,
                                                               "Reading %s",
@@ -137,7 +138,7 @@ static void do_run_coverage_tests(struct manifest *m,
 {
        struct ccan_file *i;
        char *cmdout, *outdir;
-       char *covcmd;
+       char *covargs;
        bool full_gcov = (verbose > 1);
        struct list_head *list;
        bool ran_some = false;
@@ -145,16 +146,14 @@ static void do_run_coverage_tests(struct manifest *m,
        /* This tells gcov where we put those .gcno files. */
        outdir = path_dirname(score,
                              m->info_file->compiled[COMPILE_NORMAL]);
-       covcmd = tal_fmt(m, "gcov %s -o %s",
-                        full_gcov ? "" : "-n",
-                        outdir);
+       covargs = tal_fmt(m, "%s -o %s", full_gcov ? "" : "-n", outdir);
 
        /* 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->compiled[COMPILE_COVERAGE])) {
-                               tal_append_fmt(&covcmd, " %s", i->fullname);
+                               tal_append_fmt(&covargs, " %s", i->fullname);
                        } else {
                                score_file_error(score, i, 0,
                                                 "Running test with coverage"
@@ -173,7 +172,7 @@ static void do_run_coverage_tests(struct manifest *m,
        }
 
        /* Now run gcov: we want output even if it succeeds. */
-       if (!run_command(score, timeleft, &cmdout, "%s", covcmd)) {
+       if (!run_gcov(score, timeleft, &cmdout, "%s", covargs)) {
                score->error = tal_fmt(score, "Running gcov: %s", cmdout);
                return;
        }