X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Ftests%2Fexamples_run.c;h=18bb849d3d0076ace733c28669cd33911bbd6930;hp=7fe41654b443cdf28da5c7f6e910efc9d33e1d2e;hb=655bae650e868e037d3db9f6e475f59b58e3e078;hpb=f9423c171395571f9880286190d9cf63da147668 diff --git a/tools/ccanlint/tests/examples_run.c b/tools/ccanlint/tests/examples_run.c index 7fe41654..18bb849d 100644 --- a/tools/ccanlint/tests/examples_run.c +++ b/tools/ccanlint/tests/examples_run.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -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; } @@ -208,7 +209,7 @@ static char *unexpected(struct ccan_file *i, const char *input, unsigned int default_time = default_timeout_ms; cmd = talloc_asprintf(i, "echo '%s' | %s %s", - input, i->compiled, input); + input, i->compiled[COMPILE_NORMAL], input); output = run_with_timeout(i, cmd, &ok, &default_time); if (!ok) @@ -224,7 +225,7 @@ static char *unexpected(struct ccan_file *i, const char *input, return output; } -static void run_examples(struct manifest *m, bool keep, +static void run_examples(struct manifest *m, unsigned int *timeleft, struct score *score) { struct ccan_file *i; @@ -247,35 +248,33 @@ 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) + if (i->compiled[COMPILE_NORMAL] == 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; } } } } +/* FIXME: Test with reduced features, valgrind! */ struct ccanlint 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);