X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=tools%2Fccanlint%2Fcompulsory_tests%2Fdepends_exist.c;h=b1694058b632c18ea54d58a9b028d39768f7ea4e;hp=12eaf021410153c5567ea1abd22a98afa5ba0b51;hb=4c5ed661c625ac2638a18f9540ff5b9f96a6ba6f;hpb=051db34fb275491d4d5dfa5bf7970e8e525766d8 diff --git a/tools/ccanlint/compulsory_tests/depends_exist.c b/tools/ccanlint/compulsory_tests/depends_exist.c index 12eaf021..b1694058 100644 --- a/tools/ccanlint/compulsory_tests/depends_exist.c +++ b/tools/ccanlint/compulsory_tests/depends_exist.c @@ -33,6 +33,7 @@ static bool add_dep(struct manifest *m, const char *dep, struct score *score) return true; } +/* FIXME: check this is still true once we reduce features. */ static void check_depends_exist(struct manifest *m, bool keep, unsigned int *timeleft, struct score *score) @@ -40,14 +41,25 @@ static void check_depends_exist(struct manifest *m, unsigned int i; char **deps; char *updir = talloc_strdup(m, m->dir); + bool needs_tap; - *strrchr(updir, '/') = '\0'; + if (strrchr(updir, '/')) + *strrchr(updir, '/') = '\0'; + + /* We may need libtap for testing, unless we're "tap" */ + if (streq(m->basename, "tap")) { + needs_tap = false; + } else if (list_empty(&m->run_tests) && list_empty(&m->api_tests)) { + needs_tap = false; + } else { + needs_tap = true; + } if (safe_mode) - deps = get_safe_ccan_deps(m, m->dir, true, - &m->info_file->compiled); + deps = get_safe_ccan_deps(m, m->dir, true); else - deps = get_deps(m, m->dir, true, &m->info_file->compiled); + deps = get_deps(m, m->dir, true, + &m->info_file->compiled[COMPILE_NORMAL]); for (i = 0; deps[i]; i++) { if (!strstarts(deps[i], "ccan/")) @@ -55,13 +67,14 @@ static void check_depends_exist(struct manifest *m, if (!add_dep(m, deps[i], score)) return; + + if (streq(deps[i], "ccan/tap")) { + needs_tap = false; + } } - /* We may need libtap for testing, unless we're "tap" */ - if (!streq(m->basename, "tap") - && (!list_empty(&m->run_tests) || !list_empty(&m->api_tests))) { - if (!add_dep(m, "ccan/tap", score)) - return; + if (needs_tap && !add_dep(m, "ccan/tap", score)) { + return; } score->pass = true;