aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2011-12-05 23:17:29 -0200
committerLucas De Marchi <lucas.demarchi@profusion.mobi>2011-12-06 03:34:51 -0200
commitc5b5ea9c7c4722ce33d1abb8cbee0d87bc99806a (patch)
tree4c5b2faeac067432a781b72caf291fb5934ec94c /test
parent4f2bb7cdd4c0b77f09f6f79b2c92683fdcdfa163 (diff)
downloadkmod-c5b5ea9c7c4722ce33d1abb8cbee0d87bc99806a.tar.gz
test: add test to convert name to path
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.
Diffstat (limited to 'test')
-rw-r--r--test/.gitignore1
-rw-r--r--test/test-path-from-name.c48
2 files changed, 49 insertions, 0 deletions
diff --git a/test/.gitignore b/test/.gitignore
index d7f6681..5bb051e 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -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
index 0000000..c5f8cca
--- /dev/null
+++ b/test/test-path-from-name.c
@@ -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;
+}