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);
int verbose = 0;
static struct tlist_ccanlint tests = TLIST_INIT(tests);
bool safe_mode = false;
static bool targeting = false;
static struct btree *cmdline_exclude;
static struct btree *info_exclude;
static unsigned int timeout;
......@@ -421,7 +422,7 @@ static void add_options(struct ccanlint *test, char **options,
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;
unsigned int i;
......@@ -456,7 +457,7 @@ static void add_info_options(struct ccan_file *info, bool mark_fails)
/* Known failure? */
if (strcasecmp(words[1], "FAIL") == 0) {
if (mark_fails)
if (!targeting)
btree_insert(info_exclude, words[0]);
} else {
if (!test->takes_options)
......@@ -698,7 +699,6 @@ int main(int argc, char *argv[])
for (i = 1; i < argc; i++) {
unsigned int score, total_score;
bool added_info_options = false;
dir = argv[i];
......@@ -748,12 +748,6 @@ int main(int argc, char *argv[])
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);
......
......@@ -264,6 +264,9 @@ struct dependent {
/* Is this test excluded (cmdline or _info). */
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? */
extern bool safe_mode;
......
......@@ -20,6 +20,7 @@ static void check_has_info(struct manifest *m,
if (m->info_file) {
score->pass = true;
score->score = score->total;
add_info_options(m->info_file);
} else {
score->error = talloc_strdup(score,
"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