test: add test to get dependencies of a module
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 04:40:38 +0000 (02:40 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 05:34:51 +0000 (03:34 -0200)
Makefile.am
test/.gitignore
test/test-get-dependencies.c [new file with mode: 0644]

index f4ed47b..f6534ed 100644 (file)
@@ -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
index 5bb051e..8f4db59 100644 (file)
@@ -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 (file)
index 0000000..266c5d4
--- /dev/null
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <errno.h>
+#include <unistd.h>
+#include <inttypes.h>
+#include <string.h>
+#include <libkmod.h>
+
+
+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;
+}