return f;
}
/* Should not happen: we depend on has_main_header */
- return NULL;
+ abort();
}
-static void *check_includes_build(struct manifest *m,
- bool keep,
- unsigned int *timeleft)
+static void check_includes_build(struct manifest *m,
+ bool keep,
+ unsigned int *timeleft, struct score *score)
{
char *contents;
- char *tmpsrc, *tmpobj;
+ char *tmpsrc, *tmpobj, *cmdout;
int fd;
struct ccan_file *mainh = main_header(m);
fd = open(tmpsrc, O_WRONLY | O_CREAT | O_EXCL, 0600);
if (fd < 0)
- return talloc_asprintf(m, "Creating temporary file %s: %s",
- tmpsrc, strerror(errno));
+ err(1, "Creating temporary file %s", tmpsrc);
contents = talloc_asprintf(tmpsrc, "#include <ccan/%s/%s.h>\n",
m->basename, m->basename);
- if (write(fd, contents, strlen(contents)) != strlen(contents)) {
- close(fd);
- return "Failure writing to temporary file";
- }
+ if (write(fd, contents, strlen(contents)) != strlen(contents))
+ err(1, "writing to temporary file %s", tmpsrc);
close(fd);
- return compile_object(m, tmpsrc, ccan_dir, "", tmpobj);
-}
-
-static const char *describe_includes_build(struct manifest *m,
- void *check_result)
-{
- return talloc_asprintf(check_result,
- "#include of the main header file:\n"
- "%s", (char *)check_result);
+ if (compile_object(score, tmpsrc, ccan_dir, "", tmpobj, &cmdout)) {
+ score->pass = true;
+ score->score = score->total;
+ } else {
+ score->error = talloc_asprintf(score,
+ "#include of the main header file:\n%s",
+ cmdout);
+ }
}
struct ccanlint includes_build = {
- .key = "include-main",
+ .key = "main_header_compiles",
.name = "Modules main header compiles",
- .total_score = 1,
.check = check_includes_build,
- .describe = describe_includes_build,
.can_run = can_build,
};