]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
test: add test to convert name to path
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 01:17:29 +0000 (23:17 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 05:34:51 +0000 (03:34 -0200)
If we create a kmod_module from a name, the path returned is relative to
the module dirname, as passed during kmod_ctx creation. Note that if
kmod_ctx is created with kmod_new(NULL), the dir used is the one
returned by uname.

Makefile.am
test/.gitignore
test/test-path-from-name.c [new file with mode: 0644]

index 950da2351ce5faa05027ebf3c9d2c27ba2adb1fe..f4ed47babe3fea7aaa66d7037d1b240776d85369 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 \
-                 test/test-lookup $(check_PROGRAMS)
+                 test/test-lookup test/test-path-from-name $(check_PROGRAMS)
 test_test_rmmod_SOURCES = test/test-rmmod.c
 test_test_rmmod_LDADD = libkmod/libkmod.la
 
@@ -70,3 +70,6 @@ test_test_insmod_LDADD = libkmod/libkmod.la
 
 test_test_lookup_SOURCES = test/test-lookup.c
 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
index d7f668195ef3b8a85d790f410ea7ef746ba34c64..5bb051ef5d215e849a067ca771bf6ca4ff1a9044 100644 (file)
@@ -5,3 +5,4 @@ test-rmmod
 test-rmmod2
 test-insmod
 test-lookup
+test-path-from-name
diff --git a/test/test-path-from-name.c b/test/test-path-from-name.c
new file mode 100644 (file)
index 0000000..c5f8cca
--- /dev/null
@@ -0,0 +1,48 @@
+#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[])
+{
+       struct kmod_ctx *ctx;
+       struct kmod_module *mod;
+       const char *path, *modname;
+       int err;
+
+       if (argc < 2) {
+               fprintf(stderr, "ERR: Provide an alias name\n");
+               return EXIT_FAILURE;
+       }
+
+       modname = argv[1];
+
+       ctx = kmod_new(NULL);
+       if (ctx == NULL)
+               exit(EXIT_FAILURE);
+
+       printf("libkmod version %s\n", VERSION);
+
+       err = kmod_module_new_from_name(ctx, modname, &mod);
+       if (err < 0) {
+               fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
+               goto fail;
+       }
+
+       path = kmod_module_get_path(mod);
+
+       printf("modname: '%s'  path: '%s'\n", modname, path);
+       kmod_module_unref(mod);
+       kmod_unref(ctx);
+
+       return EXIT_SUCCESS;
+
+fail:
+       kmod_unref(ctx);
+       return EXIT_FAILURE;
+}