From: Lucas De Marchi Date: Tue, 6 Dec 2011 04:40:38 +0000 (-0200) Subject: test: add test to get dependencies of a module X-Git-Tag: v1~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1843b153b458e57db6309e7d43a29c6b82bb9d5f;p=thirdparty%2Fkmod.git test: add test to get dependencies of a module --- diff --git a/Makefile.am b/Makefile.am index f4ed47ba..f6534edd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,7 +58,8 @@ test_test_loaded_SOURCES = test/test-loaded.c test_test_loaded_LDADD = libkmod/libkmod.la noinst_PROGRAMS = test/test-insmod test/test-rmmod test/test-rmmod2 \ - test/test-lookup test/test-path-from-name $(check_PROGRAMS) + test/test-lookup test/test-path-from-name \ + test/test-get-dependencies $(check_PROGRAMS) test_test_rmmod_SOURCES = test/test-rmmod.c test_test_rmmod_LDADD = libkmod/libkmod.la @@ -73,3 +74,6 @@ test_test_lookup_LDADD = libkmod/libkmod.la test_test_path_from_name_SOURCES = test/test-path-from-name.c test_test_path_from_name_LDADD = libkmod/libkmod.la + +test_test_get_dependencies_SOURCES = test/test-get-dependencies.c +test_test_get_dependencies_LDADD = libkmod/libkmod.la diff --git a/test/.gitignore b/test/.gitignore index 5bb051ef..8f4db599 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -6,3 +6,4 @@ test-rmmod2 test-insmod test-lookup test-path-from-name +test-get-dependencies diff --git a/test/test-get-dependencies.c b/test/test-get-dependencies.c new file mode 100644 index 00000000..266c5d4f --- /dev/null +++ b/test/test-get-dependencies.c @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include +#include +#include +#include + + +int main(int argc, char *argv[]) +{ + const char *name; + struct kmod_ctx *ctx; + struct kmod_module *mod; + struct kmod_list *list, *l; + int err; + + printf("libkmod version %s\n", VERSION); + + if (argc < 2) { + fprintf(stderr, "ERR: Provide a module name\n"); + return EXIT_FAILURE; + } + + name = argv[1]; + + ctx = kmod_new(NULL); + if (ctx == NULL) + exit(EXIT_FAILURE); + + err = kmod_module_new_from_name(ctx, name, &mod); + if (err < 0) { + kmod_unref(ctx); + exit(EXIT_FAILURE); + } + + list = kmod_module_get_dependencies(mod); + printf("Module: %s\nDependency list:\n", name); + + kmod_list_foreach(l, list) { + struct kmod_module *m = kmod_module_get_module(l); + printf("\t%s\n", kmod_module_get_name(m)); + kmod_module_unref(m); + } + + kmod_module_unref_list(list); + kmod_module_unref(mod); + kmod_unref(ctx); + + return EXIT_SUCCESS; +}