]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/examples_compile.c
ccanlint: show example we actually compiled when we report warnings.
[ccan] / tools / ccanlint / tests / examples_compile.c
index 7cee7795b7c8fef9cd532437e3d4977b6bce1fda..5aeabed38cbb7f8ec59664c0fd4bf0912081e3a9 100644 (file)
@@ -71,13 +71,12 @@ static char *add_dep(const struct manifest *m, char *list, const char *mod)
 static char *obj_list(const struct manifest *m, struct ccan_file *f)
 {
        char *list = talloc_strdup(m, "");
-       struct ccan_file *i;
        struct manifest *subm;
        char **lines;
 
-       /* Object files for this module. */
-       list_for_each(&m->c_files, i, list)
-               list = talloc_asprintf_append(list, " %s", i->compiled);
+       /* This module. */
+       if (m->compiled)
+               list = talloc_asprintf_append(list, " %s", m->compiled);
 
        /* Other ccan modules we depend on. */
        list_for_each(&m->deps, subm, list) {
@@ -154,7 +153,7 @@ static char *add_func(char *others, const char *line)
        }
 
        return talloc_asprintf_append(others, "printf(\"%%p\", %.*s);\n",
-                                     (unsigned)(end - p + 1), p);
+                                     (unsigned)(end - p), p+1);
 }
 
 static void strip_leading_whitespace(char **lines)
@@ -530,7 +529,14 @@ static void build_examples(struct manifest *m, bool keep,
                                warnings = true;
                                score->error = "Compiling extracted example"
                                        " gave warnings";
-                               score_file_error(score, file[j], 0, err[j]);
+                               error = talloc_asprintf(score,
+                                       "Example:\n"
+                                       "%s\n"
+                                       "Compiler:\n"
+                                       "%s",
+                                       get_ccan_file_contents(file[j]),
+                                       err[j]);
+                               score_file_error(score, file[j], 0, error);
                                goto next;
                        }
                }
@@ -600,4 +606,4 @@ struct ccanlint examples_compile = {
        .can_run = can_run,
 };
 
-REGISTER_TEST(examples_compile, &has_examples, &build_objs, NULL);
+REGISTER_TEST(examples_compile, &has_examples, &build, NULL);