}
if ((!quiet && !score->pass) || verbose) {
- struct file_error *f;
- unsigned int lines = 1;
-
if (score->error)
- printf("%s%s\n", score->error,
- list_empty(&score->per_file_errors) ? "" : ":");
-
- list_for_each(&score->per_file_errors, f, list) {
- if (f->line)
- printf("%s:%u:%s\n",
- f->file->fullname, f->line, f->error);
- else if (f->file)
- printf("%s:%s\n", f->file->fullname, f->error);
- else
- printf("%s\n", f->error);
- if (verbose < 2 && ++lines > 5) {
- printf("... more (use -vv to see them all)\n");
- break;
- }
- }
+ printf("%s", score->error);
if (!quiet && !score->pass && i->handle)
i->handle(m, score);
}
/* Resolve dependencies. */
foreach_ptr(list, &compulsory_tests, &normal_tests) {
list_for_each(list, c, list) {
- char **deps = strsplit(NULL, c->needs, " ", NULL);
+ char **deps = strsplit(NULL, c->needs, " ");
unsigned int i;
for (i = 0; deps[i]; i++) {
}
}
+static int show_tmpdir(char *dir)
+{
+ printf("You can find ccanlint working files in '%s'\n", dir);
+ return 0;
+}
+
static char *keep_test(const char *testname, void *unused)
{
- struct ccanlint *i = find_test(testname);
- if (!i)
- errx(1, "No test %s to --keep", testname);
- i->keep_results = true;
+ struct ccanlint *i;
+
+ if (streq(testname, "all")) {
+ struct list_head *list;
+ foreach_ptr(list, &compulsory_tests, &normal_tests) {
+ list_for_each(list, i, list)
+ i->keep_results = true;
+ }
+ } else {
+ i = find_test(testname);
+ if (!i)
+ errx(1, "No test %s to --keep", testname);
+ i->keep_results = true;
+ }
+
+ /* Don't automatically destroy temporary dir. */
+ talloc_set_destructor(temp_dir(NULL), show_tmpdir);
return NULL;
}
continue;
for (i = 0; i < d->num_lines; i++) {
- char **words = collapse(strsplit(d, d->lines[i], " \t",
- NULL), NULL);
+ char **words = collapse(strsplit(d, d->lines[i], " \t"),
+ NULL);
if (!words[0])
continue;
opt_register_noarg("--test-dep-graph", test_dependency_graph, NULL,
"print dependency graph of tests in Graphviz .dot format");
opt_register_arg("-k|--keep <testname>", keep_test, NULL, NULL,
- "keep results of <testname> (can be used multiple times)");
+ "keep results of <testname>"
+ " (can be used multiple times, or 'all')");
opt_register_noarg("--summary|-s", opt_set_bool, &summary,
"simply give one line summary");
opt_register_noarg("--verbose|-v", opt_inc_intval, &verbose,
" of CCAN modules.",
"This usage message");
+ /* We move into temporary directory, so gcov dumps its files there. */
+ if (chdir(temp_dir(talloc_autofree_context())) != 0)
+ err(1, "Error changing to %s temporary dir", temp_dir(NULL));
+
opt_parse(&argc, argv, opt_log_stderr_exit);
if (dir[0] != '/')
dir = talloc_asprintf_append(NULL, "%s/%s", base_dir, dir);
+ while (strends(dir, "/"))
+ dir[strlen(dir)-1] = '\0';
if (dir != base_dir)
prefix = talloc_append_string(talloc_basename(NULL, dir), ": ");
if (verbose >= 3)
if (verbose >= 4)
tools_verbose = true;
- /* We move into temporary directory, so gcov dumps its files there. */
- if (chdir(temp_dir(talloc_autofree_context())) != 0)
- err(1, "Error changing to %s temporary dir", temp_dir(NULL));
-
m = get_manifest(talloc_autofree_context(), dir);
/* Create a symlink from temp dir back to src dir's test directory. */