Commit 64bd9ff9 authored by Rusty Russell's avatar Rusty Russell

ccanlint: remove wart from info options.

Make info_exists() call add_info_options() directly, rather than detecting
that we've found _info inside the loop of tests.

It means targeting is now a global, which is a bit sucky.
parent ed4ee954
...@@ -41,6 +41,7 @@ TLIST_TYPE(ccanlint, struct ccanlint); ...@@ -41,6 +41,7 @@ TLIST_TYPE(ccanlint, struct ccanlint);
int verbose = 0; int verbose = 0;
static struct tlist_ccanlint tests = TLIST_INIT(tests); static struct tlist_ccanlint tests = TLIST_INIT(tests);
bool safe_mode = false; bool safe_mode = false;
static bool targeting = false;
static struct btree *cmdline_exclude; static struct btree *cmdline_exclude;
static struct btree *info_exclude; static struct btree *info_exclude;
static unsigned int timeout; static unsigned int timeout;
...@@ -421,7 +422,7 @@ static void add_options(struct ccanlint *test, char **options, ...@@ -421,7 +422,7 @@ static void add_options(struct ccanlint *test, char **options,
memcpy(&test->options[num], options, (num_options + 1)*sizeof(char *)); memcpy(&test->options[num], options, (num_options + 1)*sizeof(char *));
} }
static void add_info_options(struct ccan_file *info, bool mark_fails) void add_info_options(struct ccan_file *info)
{ {
struct doc_section *d; struct doc_section *d;
unsigned int i; unsigned int i;
...@@ -456,7 +457,7 @@ static void add_info_options(struct ccan_file *info, bool mark_fails) ...@@ -456,7 +457,7 @@ static void add_info_options(struct ccan_file *info, bool mark_fails)
/* Known failure? */ /* Known failure? */
if (strcasecmp(words[1], "FAIL") == 0) { if (strcasecmp(words[1], "FAIL") == 0) {
if (mark_fails) if (!targeting)
btree_insert(info_exclude, words[0]); btree_insert(info_exclude, words[0]);
} else { } else {
if (!test->takes_options) if (!test->takes_options)
...@@ -698,7 +699,6 @@ int main(int argc, char *argv[]) ...@@ -698,7 +699,6 @@ int main(int argc, char *argv[])
for (i = 1; i < argc; i++) { for (i = 1; i < argc; i++) {
unsigned int score, total_score; unsigned int score, total_score;
bool added_info_options = false;
dir = argv[i]; dir = argv[i];
...@@ -748,12 +748,6 @@ int main(int argc, char *argv[]) ...@@ -748,12 +748,6 @@ int main(int argc, char *argv[])
goto next; goto next;
} }
} }
/* --target overrides known FAIL from _info */
if (!added_info_options && m->info_file) {
add_info_options(m->info_file, !target);
added_info_options = true;
}
} }
printf("%sTotal score: %u/%u\n", prefix, score, total_score); printf("%sTotal score: %u/%u\n", prefix, score, total_score);
......
...@@ -264,6 +264,9 @@ struct dependent { ...@@ -264,6 +264,9 @@ struct dependent {
/* Is this test excluded (cmdline or _info). */ /* Is this test excluded (cmdline or _info). */
bool is_excluded(const char *name); bool is_excluded(const char *name);
/* Called to add options from _info, once it's located. */
void add_info_options(struct ccan_file *info);
/* Are we happy to compile stuff, or just non-intrusive tests? */ /* Are we happy to compile stuff, or just non-intrusive tests? */
extern bool safe_mode; extern bool safe_mode;
......
...@@ -20,6 +20,7 @@ static void check_has_info(struct manifest *m, ...@@ -20,6 +20,7 @@ static void check_has_info(struct manifest *m,
if (m->info_file) { if (m->info_file) {
score->pass = true; score->pass = true;
score->score = score->total; score->score = score->total;
add_info_options(m->info_file);
} else { } else {
score->error = talloc_strdup(score, score->error = talloc_strdup(score,
"You have no _info file.\n\n" "You have no _info file.\n\n"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment