8 struct ccan_file *info_file;
10 struct list_head c_files;
11 struct list_head h_files;
13 struct list_head run_tests;
14 struct list_head compile_ok_tests;
15 struct list_head compile_fail_tests;
16 struct list_head other_test_files;
18 struct list_head other_files;
21 struct manifest *get_manifest(void);
24 struct list_node list;
26 /* Unique name of test */
29 /* Total score that this test is worth. 0 means compulsory tests. */
30 unsigned int total_score;
32 /* If this returns non-NULL, it means the check failed. */
33 void *(*check)(struct manifest *m);
35 /* The non-NULL return from check is passed to one of these: */
37 /* So, what did this get out of the total_score? (NULL means 0). */
38 unsigned int (*score)(struct manifest *m, void *check_result);
40 /* Verbose description of what was wrong. */
41 const char *(*describe)(struct manifest *m, void *check_result);
43 /* Can we do something about it? (NULL if not) */
44 void (*handle)(struct manifest *m, void *check_result);
47 /* Ask the user a yes/no question: the answer is NO if there's an error. */
48 bool ask(const char *question);
51 struct list_node list;
55 unsigned int num_lines;
59 /* Use this rather than accessing f->lines directly: loads on demand. */
60 char **get_ccan_file_lines(struct ccan_file *f);
62 /* Call the reporting on every line in the file. sofar contains
63 * previous results. */
64 char *report_on_lines(struct list_head *files,
65 char *(*report)(const char *),
68 /* The critical tests which mean fail if they don't pass. */
69 extern struct ccanlint no_info;
70 extern struct ccanlint has_main_header;
73 extern struct ccanlint trailing_whitespace;
76 #endif /* CCAN_LINT_H */