]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Add test for lookup function
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Wed, 30 Nov 2011 21:10:48 +0000 (19:10 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Wed, 30 Nov 2011 21:10:48 +0000 (19:10 -0200)
Makefile.am
test/.gitignore
test/test-lookup.c [new file with mode: 0644]

index 1dc7f5fe1896a447202aa83d356d6dcea4f90e86..eb35adf10e48994317f2816c21ce7c9c8dfcd104 100644 (file)
@@ -58,7 +58,7 @@ 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 \
-                 $(check_PROGRAMS)
+                 test/test-lookup $(check_PROGRAMS)
 test_test_rmmod_SOURCES = test/test-rmmod.c
 test_test_rmmod_LDADD = libkmod/libkmod.la
 
@@ -67,3 +67,6 @@ test_test_rmmod2_LDADD = libkmod/libkmod.la
 
 test_test_insmod_SOURCES = test/test-insmod.c
 test_test_insmod_LDADD = libkmod/libkmod.la
+
+test_test_lookup_SOURCES = test/test-lookup.c
+test_test_lookup_LDADD = libkmod/libkmod.la
index bc9eb6ee4a01acc59ffbd5444d22e3ed2b92a6bb..d7f668195ef3b8a85d790f410ea7ef746ba34c64 100644 (file)
@@ -4,3 +4,4 @@ test-loaded
 test-rmmod
 test-rmmod2
 test-insmod
+test-lookup
diff --git a/test/test-lookup.c b/test/test-lookup.c
new file mode 100644 (file)
index 0000000..42656ec
--- /dev/null
@@ -0,0 +1,50 @@
+#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 *alias;
+       struct kmod_ctx *ctx;
+       struct kmod_list *list = NULL, *l;
+       struct kmod_module *mod;
+       int err;
+
+       printf("libkmod version %s\n", VERSION);
+
+       if (argc < 2) {
+               fprintf(stderr, "ERR: Provide an alias name\n");
+               return EXIT_FAILURE;
+       }
+
+       alias = argv[1];
+
+       ctx = kmod_new(NULL);
+       if (ctx == NULL)
+               exit(EXIT_FAILURE);
+
+       err = kmod_module_new_from_lookup(ctx, alias, &list);
+       if (err < 0)
+               exit(EXIT_FAILURE);
+
+       if (list == NULL)
+               printf("No module matches '%s'\n", alias);
+       else
+               printf("Alias: '%s'\nModules matching:\n", alias);
+
+       kmod_list_foreach(l, list) {
+               struct kmod_module *mod = kmod_module_get_module(l);
+               printf("\t%s\n", kmod_module_get_name(mod));
+       }
+
+       kmod_module_unref_list(list);
+       kmod_unref(ctx);
+
+       return EXIT_SUCCESS;
+}