Commit 655620a2 authored by David Gibson's avatar David Gibson

ccanlint: Alter meaning of --summary option

--summary (used by make check) causes ccanlint to only ever print a
one-line summary of the results.  When one of the tests fails, this isn't
very useful, because it doesn't say why it failed, or even which test
failed.  This is particularly frustrating for failures in Travis CI builds
where it's not always straightforward to reproduce a similar enough build
environment to check the failure manually for a particular module.

--summary does have one purpose which is vital for make check, though: it
suppresses any attempt to interactively correct / improve the module
printing only results.

This changes --summary to only have the second effect, not the first.  This
won't change the output in the case of passing modules, but will give more
useful information in the case of failing modules.
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 6b746696
...@@ -98,7 +98,7 @@ static bool cannot_run(struct dgraph_node *node, void *all UNNEEDED) ...@@ -98,7 +98,7 @@ static bool cannot_run(struct dgraph_node *node, void *all UNNEEDED)
} }
struct run_info { struct run_info {
bool quiet; bool noninteractive;
unsigned int score, total; unsigned int score, total;
struct manifest *m; struct manifest *m;
const char *prefix; const char *prefix;
...@@ -165,7 +165,7 @@ static bool run_test(struct dgraph_node *n, struct run_info *run) ...@@ -165,7 +165,7 @@ static bool run_test(struct dgraph_node *n, struct run_info *run)
} }
assert(score->score <= score->total); assert(score->score <= score->total);
if ((!score->pass && !run->quiet) if (!score->pass
|| (score->score < score->total && verbose) || (score->score < score->total && verbose)
|| verbose > 1) { || verbose > 1) {
printf("%s%s (%s): %s", printf("%s%s (%s): %s",
...@@ -176,13 +176,13 @@ static bool run_test(struct dgraph_node *n, struct run_info *run) ...@@ -176,13 +176,13 @@ static bool run_test(struct dgraph_node *n, struct run_info *run)
printf("\n"); printf("\n");
} }
if ((!run->quiet && !score->pass) || verbose) { if (!score->pass || verbose) {
if (score->error) { if (score->error) {
printf("%s%s", score->error, printf("%s%s", score->error,
strends(score->error, "\n") ? "" : "\n"); strends(score->error, "\n") ? "" : "\n");
} }
} }
if (!run->quiet && score->score < score->total && i->handle) if (!run->noninteractive && score->score < score->total && i->handle)
i->handle(run->m, score); i->handle(run->m, score);
if (!score->pass) { if (!score->pass) {
...@@ -567,7 +567,7 @@ static bool run_tests(struct dgraph_node *all, ...@@ -567,7 +567,7 @@ static bool run_tests(struct dgraph_node *all,
struct run_info run; struct run_info run;
const char *comment = ""; const char *comment = "";
run.quiet = summary; run.noninteractive = summary;
run.m = m; run.m = m;
run.prefix = prefix; run.prefix = prefix;
run.score = run.total = 0; run.score = run.total = 0;
...@@ -638,7 +638,7 @@ int main(int argc, char *argv[]) ...@@ -638,7 +638,7 @@ int main(int argc, char *argv[])
opt_register_noarg("-k|--keep", keep_tests, NULL, opt_register_noarg("-k|--keep", keep_tests, NULL,
"do not delete ccanlint working files"); "do not delete ccanlint working files");
opt_register_noarg("--summary|-s", opt_set_bool, &summary, opt_register_noarg("--summary|-s", opt_set_bool, &summary,
"simply give one line summary"); "give results only, no interactive correction");
opt_register_arg("-x|--exclude <testname>", exclude_test, NULL, NULL, opt_register_arg("-x|--exclude <testname>", exclude_test, NULL, NULL,
"exclude <testname> (can be used multiple times)"); "exclude <testname> (can be used multiple times)");
opt_register_arg("--timeout <milleseconds>", opt_set_uintval, opt_register_arg("--timeout <milleseconds>", opt_set_uintval,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment