}
if ((!quiet && !score->pass) || verbose) {
- if (score->error)
- printf("%s", score->error);
+ if (score->error) {
+ printf("%s%s", score->error,
+ strends(score->error, "\n") ? "" : "\n");
+ }
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 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);
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,