]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/info_documentation_exists.c
ccanlint: make depends_accurate test more accurate.
[ccan] / tools / ccanlint / tests / info_documentation_exists.c
index a5316fe00d0ae3dba4a2a2287a51ce1dfeb17faa..7be0b797532727a6fe1acd8f9af7e1ac52780837 100644 (file)
 #include <ccan/noerr/noerr.h>
 #include <ccan/grab_file/grab_file.h>
 
-extern struct ccanlint info_documentation_exists;
+static void check_info_documentation_exists(struct manifest *m,
+                                           unsigned int *timeleft,
+                                           struct score *score);
+
+static struct ccanlint info_documentation_exists = {
+       .key = "info_documentation_exists",
+       .name = "Module has documentation in _info",
+       .check = check_info_documentation_exists,
+       .needs = "info_exists"
+};
 
 static void create_info_template_doc(struct manifest *m, struct score *score)
 {
@@ -59,14 +68,16 @@ static void create_info_template_doc(struct manifest *m, struct score *score)
 }
 
 static void check_info_documentation_exists(struct manifest *m,
-                                        bool keep,
-                                        unsigned int *timeleft,
-                                        struct score *score)
+                                           unsigned int *timeleft,
+                                           struct score *score)
 {
        struct list_head *infodocs = get_ccan_file_docs(m->info_file);
        struct doc_section *d;
        bool summary = false, description = false;
 
+       /* We don't fail ccanlint for this. */
+       score->pass = true;
+
        list_for_each(infodocs, d, list) {
                if (!streq(d->function, m->basename))
                        continue;
@@ -78,25 +89,20 @@ static void check_info_documentation_exists(struct manifest *m,
 
        if (summary && description) {
                score->score = score->total;
-               score->pass = true;
        } else if (!summary) {
-               score->error = "_info file has no module documentation.\n\n"
+               score->error = talloc_strdup(score,
+               "_info file has no module documentation.\n\n"
                "CCAN modules use /**-style comments for documentation: the\n"
-               "overall documentation belongs in the _info metafile.\n";
+               "overall documentation belongs in the _info metafile.\n");
                info_documentation_exists.handle = create_info_template_doc;
        } else if (!description)  {
-               score->error = "_info file has no module description.\n\n"
+               score->error = talloc_strdup(score,
+               "_info file has no module description.\n\n"
                "The lines after the first summary line in the _info file\n"
                "documentation should describe the purpose and use of the\n"
-               "overall package\n";
+               "overall package\n");
        }
 }
 
-struct ccanlint info_documentation_exists = {
-       .key = "info_documentation_exists",
-       .name = "Module has documentation in _info",
-       .check = check_info_documentation_exists,
-       .needs = "info_exists"
-};
-
 REGISTER_TEST(info_documentation_exists);
+