]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/examples_run.c
tools: fix up warnings with -Wwrite-strings.
[ccan] / tools / ccanlint / tests / examples_run.c
index 3cb456d49fa69d38f073f76229aa706b1ccb8e5a..5c06c263e5228ebc0fffaf9e19abdc9ce6f7503e 100644 (file)
@@ -3,6 +3,7 @@
 #include <ccan/talloc/talloc.h>
 #include <ccan/foreach/foreach.h>
 #include <ccan/str/str.h>
+#include <ccan/cast/cast.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -26,7 +27,7 @@ static const char *can_run(struct manifest *m)
 
 /* Very dumb scanner, allocates %s-strings. */
 static bool scan_forv(const void *ctx,
-                     const char *input, const char *fmt, const va_list *args)
+                     const char *input, const char *fmt, va_list *args)
 {
        va_list ap;
        bool ret;
@@ -36,10 +37,10 @@ static bool scan_forv(const void *ctx,
 
        va_copy(ap, *args);
 
-       if (isspace(fmt[0])) {
+       if (cisspace(fmt[0])) {
                /* One format space can swallow many input spaces */
                ret = false;
-               while (isspace(input[0])) {
+               while (cisspace(input[0])) {
                        if (scan_forv(ctx, ++input, fmt+1, &ap)) {
                                ret = true;
                                break;
@@ -116,7 +117,7 @@ static char *find_expect(struct ccan_file *file,
 
                foreach_ptr(fmt, "outputs '%s'", "outputs \"%s\"") {
                        if (scan_for(file, p, fmt, &expect)) {
-                               *input = "";
+                               *input = cast_const(char *, "");
                                *exact = true;
                                return expect;
                        }
@@ -173,7 +174,7 @@ static char *find_expect(struct ccan_file *file,
                            "outputs \"%s\"",
                            "outputs %s") {
                        if (scan_for(file, p, fmt, &expect)) {
-                               *input = "";
+                               *input = cast_const(char *, "");
                                *exact = true;
                                return expect;
                        }
@@ -184,7 +185,7 @@ static char *find_expect(struct ccan_file *file,
                            "output contains \"%s\"",
                            "output contains %s") {
                        if (scan_for(file, p, fmt, &expect)) {
-                               *input = "";
+                               *input = cast_const(char *, "");
                                *exact = false;
                                return expect;
                        }
@@ -247,24 +248,20 @@ static void run_examples(struct manifest *m, bool keep,
                             linenum++,
                                     expect = find_expect(i, lines, &input,
                                                          &exact, &linenum)) {
-                               char *err;
-                               score->total++;
                                if (i->compiled == NULL)
                                        continue;
 
+                               score->total++;
                                output = unexpected(i, input, expect, exact);
                                if (!output) {
                                        score->score++;
                                        continue;
                                }
-                               err = talloc_asprintf(score,
-                                                     "output '%s' didn't"
-                                                     " %s '%s'\n",
-                                                     output,
-                                                     exact
-                                                     ? "match" : "contain",
-                                                     expect);
-                               score_file_error(score, i, linenum+1, err);
+                               score_file_error(score, i, linenum+1,
+                                                "output '%s' didn't %s '%s'\n",
+                                                output,
+                                                exact ? "match" : "contain",
+                                                expect);
                                score->pass = false;
                        }
                }
@@ -272,10 +269,11 @@ static void run_examples(struct manifest *m, bool keep,
 }
 
 struct ccanlint examples_run = {
-       .key = "examples-run",
+       .key = "examples_run",
        .name = "Module examples with expected output give that output",
        .check = run_examples,
        .can_run = can_run,
+       .needs = "examples_compile"
 };
 
-REGISTER_TEST(examples_run, &examples_compile, NULL);
+REGISTER_TEST(examples_run);