From b401a01a30118cf3f89071f455b56136a2ad81d7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 1 Mar 2011 17:47:24 +1030 Subject: [PATCH] ccanlint: compile module with reduced-feature config.h --- tools/ccanlint/compulsory_tests/build.h | 2 ++ .../ccanlint/compulsory_tests/module_builds.c | 1 + .../ccanlint/compulsory_tests/objects_build.c | 15 +++++++++---- .../tests/objects_build_without_features.c | 21 +++++++++++++++++++ 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 tools/ccanlint/tests/objects_build_without_features.c diff --git a/tools/ccanlint/compulsory_tests/build.h b/tools/ccanlint/compulsory_tests/build.h index 633060db..0e2f7e65 100644 --- a/tools/ccanlint/compulsory_tests/build.h +++ b/tools/ccanlint/compulsory_tests/build.h @@ -2,4 +2,6 @@ #define CCANLINT_BUILD_H char *build_module(struct manifest *m, bool keep, char **errstr); char *build_submodule(struct manifest *m); +void build_objects(struct manifest *m, + bool keep, struct score *score, const char *flags); #endif /* CCANLINT_BUILD_H */ diff --git a/tools/ccanlint/compulsory_tests/module_builds.c b/tools/ccanlint/compulsory_tests/module_builds.c index 44c882ce..40a345e5 100644 --- a/tools/ccanlint/compulsory_tests/module_builds.c +++ b/tools/ccanlint/compulsory_tests/module_builds.c @@ -82,3 +82,4 @@ struct ccanlint module_builds = { }; REGISTER_TEST(module_builds); + diff --git a/tools/ccanlint/compulsory_tests/objects_build.c b/tools/ccanlint/compulsory_tests/objects_build.c index 91bc12ce..46fdbd45 100644 --- a/tools/ccanlint/compulsory_tests/objects_build.c +++ b/tools/ccanlint/compulsory_tests/objects_build.c @@ -13,6 +13,7 @@ #include #include #include +#include "build.h" static const char *can_build(struct manifest *m) { @@ -21,9 +22,8 @@ static const char *can_build(struct manifest *m) return NULL; } -static void check_objs_build(struct manifest *m, - bool keep, - unsigned int *timeleft, struct score *score) +void build_objects(struct manifest *m, + bool keep, struct score *score, const char *flags) { struct ccan_file *i; bool errors = false, warnings = false; @@ -38,7 +38,7 @@ static void check_objs_build(struct manifest *m, char *fullfile = talloc_asprintf(m, "%s/%s", m->dir, i->name); i->compiled = maybe_temp_file(m, "", keep, fullfile); - if (!compile_object(score, fullfile, ccan_dir, compiler, cflags, + if (!compile_object(score, fullfile, ccan_dir, compiler, flags, i->compiled, &output)) { talloc_free(i->compiled); score_file_error(score, i, 0, @@ -60,6 +60,13 @@ static void check_objs_build(struct manifest *m, } } +static void check_objs_build(struct manifest *m, + bool keep, + unsigned int *timeleft, struct score *score) +{ + build_objects(m, keep, score, cflags); +} + struct ccanlint objects_build = { .key = "objects_build", .name = "Module object files can be built", diff --git a/tools/ccanlint/tests/objects_build_without_features.c b/tools/ccanlint/tests/objects_build_without_features.c new file mode 100644 index 00000000..f30bde4e --- /dev/null +++ b/tools/ccanlint/tests/objects_build_without_features.c @@ -0,0 +1,21 @@ +#include +#include +#include "../compulsory_tests/build.h" + +static void check_objs_build_without_features(struct manifest *m, + bool keep, + unsigned int *timeleft, + struct score *score) +{ + const char *flags = talloc_asprintf(score, "-I. %s", cflags); + build_objects(m, keep, score, flags); +} + +struct ccanlint objects_build_without_features = { + .key = "objects_build_without_features", + .name = "Module object files can be built (without features)", + .check = check_objs_build_without_features, + .needs = "reduce_features objects_build" +}; +REGISTER_TEST(objects_build_without_features); + -- 2.39.2