]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/run_tests_valgrind.c
tools: fix warnings from Ubuntu strict compiler.
[ccan] / tools / ccanlint / tests / run_tests_valgrind.c
index f4ab8f528df13aad2a78a4bd11613e497b2a5985..2191f80e3dcfc2ecd2d118fe4c3df6ab26a9b85a 100644 (file)
@@ -36,11 +36,20 @@ static void *do_run_tests_vg(struct manifest *m)
        struct run_tests_result *res;
        struct ccan_file *i;
        char *cmdout;
+       char *olddir;
+
+       /* We run tests in the module directory, so any paths
+        * referenced can all be module-local. */
+       olddir = talloc_getcwd(m);
+       if (!olddir)
+               err(1, "Could not save cwd");
+       if (chdir(m->dir) != 0)
+               err(1, "Could not chdir to %s", m->dir);
 
        list_head_init(list);
 
        list_for_each(&m->run_tests, i, list) {
-               run_tests.total_score++;
+               run_tests_vg.total_score++;
                /* FIXME: timeout here */
                cmdout = run_command(m, "valgrind -q %s", i->compiled);
                if (cmdout) {
@@ -52,7 +61,7 @@ static void *do_run_tests_vg(struct manifest *m)
        }
 
        list_for_each(&m->api_tests, i, list) {
-               run_tests.total_score++;
+               run_tests_vg.total_score++;
                /* FIXME: timeout here */
                cmdout = run_command(m, "valgrind -q %s", i->compiled);
                if (cmdout) {
@@ -68,6 +77,9 @@ static void *do_run_tests_vg(struct manifest *m)
                list = NULL;
        }
 
+       if (chdir(olddir) != 0)
+               err(1, "Could not chdir to %s", olddir);
+
        return list;
 }
 
@@ -75,7 +87,7 @@ static unsigned int score_run_tests_vg(struct manifest *m, void *check_result)
 {
        struct list_head *list = check_result;
        struct run_tests_result *i;
-       unsigned int score = run_tests.total_score;
+       unsigned int score = run_tests_vg.total_score;
 
        list_for_each(list, i, list)
                score--;
@@ -95,6 +107,9 @@ static const char *describe_run_tests_vg(struct manifest *m,
        return descrip;
 }
 
+/* Gcc's warn_unused_result is fascist bullshit. */
+#define doesnt_matter()
+
 static void run_under_debugger_vg(struct manifest *m, void *check_result)
 {
        struct list_head *list = check_result;
@@ -107,7 +122,8 @@ static void run_under_debugger_vg(struct manifest *m, void *check_result)
        first = list_top(list, struct run_tests_result, list);
        command = talloc_asprintf(m, "valgrind --db-attach=yes %s",
                                  first->file->compiled);
-       system(command);
+       if (system(command))
+               doesnt_matter();
 }
 
 struct ccanlint run_tests_vg = {