unsigned int *timeleft, struct score *score)
{
struct ccan_file *i;
+ bool errors = false, warnings = false;
if (list_empty(&m->c_files))
score->total = 0;
+ else
+ score->total = 2;
list_for_each(&m->c_files, i, list) {
- char *err;
+ char *output;
char *fullfile = talloc_asprintf(m, "%s/%s", m->dir, i->name);
i->compiled = maybe_temp_file(m, "", keep, fullfile);
- err = compile_object(m, fullfile, ccan_dir, "", i->compiled);
- if (err) {
+ if (!compile_object(score, fullfile, ccan_dir, "", i->compiled,
+ &output)) {
talloc_free(i->compiled);
score->error = "Compiling object files";
- score_file_error(score, i, 0, err);
+ score_file_error(score, i, 0, output);
+ errors = true;
+ } else if (!streq(output, "")) {
+ score->error = "Compiling object files gave warnings";
+ score_file_error(score, i, 0, output);
+ warnings = true;
}
}
- if (!score->error) {
+
+ if (!errors) {
score->pass = true;
- score->score = score->total;
+ score->score = score->total - warnings;
}
}
struct ccanlint build_objs = {
- .key = "build-objects",
+ .key = "objects_build",
.name = "Module object files can be built",
.check = check_objs_build,
.can_run = can_build,
+ .needs = "depends_exist"
};
-REGISTER_TEST(build_objs, &depends_exist, NULL);
+REGISTER_TEST(build_objs);