]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/compulsory_tests/check_build.c
ccanlint: list dependencies by key
[ccan] / tools / ccanlint / compulsory_tests / check_build.c
index 9175b91835f5bb2271f6e645d9040038030c8663..db2e16d54a4f8cd89fdec478094ff0a279d3f592 100644 (file)
@@ -24,12 +24,13 @@ static const char *can_build(struct manifest *m)
 static char *obj_list(const struct manifest *m)
 {
        char *list = talloc_strdup(m, "");
-       struct ccan_file *i;
+       struct manifest *i;
 
        /* Other CCAN deps. */
-       list_for_each(&m->dep_dirs, i, list) {
+       list_for_each(&m->deps, i, list) {
                if (i->compiled)
-                       list = talloc_asprintf_append(list, "%s ", i->compiled);
+                       list = talloc_asprintf_append(list, "%s ",
+                                                     i->compiled);
        }
        return list;
 }
@@ -50,7 +51,7 @@ static void check_use_build(struct manifest *m,
                            unsigned int *timeleft, struct score *score)
 {
        char *contents;
-       char *tmpfile;
+       char *tmpfile, *cmdout;
        char *basename = talloc_asprintf(m, "%s/example.c", m->dir);
        int fd;
 
@@ -71,20 +72,23 @@ static void check_use_build(struct manifest *m,
                err(1, "Failure writing to temporary file %s", tmpfile);
        close(fd);
 
-       score->error = compile_and_link(m, tmpfile, ccan_dir, obj_list(m), "",
-                                       lib_list(m),
-                                       maybe_temp_file(m, "", keep, tmpfile));
-       if (!score->error) {
+       if (compile_and_link(score, tmpfile, ccan_dir, obj_list(m), "",
+                            lib_list(m),
+                            maybe_temp_file(m, "", keep, tmpfile),
+                            &cmdout)) {
                score->pass = true;
                score->score = score->total;
+       } else {
+               score->error = cmdout;
        }
 }
 
 struct ccanlint check_build = {
-       .key = "check-link",
+       .key = "module_links",
        .name = "Module can be linked against trivial program",
        .check = check_use_build,
        .can_run = can_build,
+       .needs = "module_builds depends_build"
 };
 
-REGISTER_TEST(check_build, &build, NULL);
+REGISTER_TEST(check_build);