diff options
author | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-12-05 23:17:29 -0200 |
---|---|---|
committer | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-12-06 03:34:51 -0200 |
commit | c5b5ea9c7c4722ce33d1abb8cbee0d87bc99806a (patch) | |
tree | 4c5b2faeac067432a781b72caf291fb5934ec94c /test | |
parent | 4f2bb7cdd4c0b77f09f6f79b2c92683fdcdfa163 (diff) | |
download | kmod-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/.gitignore | 1 | ||||
-rw-r--r-- | test/test-path-from-name.c | 48 |
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; +} |