/* FIXME: check this is still true once we reduce features. */
static void check_depends_exist(struct manifest *m,
- unsigned int *timeleft, struct score *score)
+ unsigned int *timeleft UNNEEDED,
+ struct score *score)
{
unsigned int i;
char **deps;
deps = get_deps(m, m->dir, "depends", true,
get_or_compile_info);
+ if (!deps) {
+ score->error = tal_fmt(m, "Could not extract dependencies");
+ return;
+ }
+
for (i = 0; deps[i]; i++) {
- if (!strstarts(deps[i], "ccan/"))
+ if (!strstarts(deps[i], "ccan/")) {
+ non_ccan_deps = true;
continue;
+ }
if (!add_dep(m, &m->deps, deps[i], score))
return;
}
static void check_test_depends_exist(struct manifest *m,
- unsigned int *timeleft,
+ unsigned int *timeleft UNNEEDED,
struct score *score)
{
unsigned int i;
if (!strstarts(deps[i], "ccan/"))
continue;
- /* Don't add dependency twice: we can only be on one list! */
+ /* Don't add dependency twice: we can only be on one list!
+ * Also, it's possible to have circular test depends, so drop
+ * self-refs. */
if (!have_dep(m, deps[i])
+ && !streq(deps[i] + strlen("ccan/"), m->modname)
&& !add_dep(m, &m->test_deps, deps[i], score))
return;
.name = "Module's CCAN dependencies can be found",
.compulsory = true,
.check = check_depends_exist,
- .needs = "info_exists"
+ .needs = "info_compiles"
};
REGISTER_TEST(depends_exist);