diff options
author | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-11-25 01:24:16 -0200 |
---|---|---|
committer | Lucas De Marchi <lucas.demarchi@profusion.mobi> | 2011-11-25 01:24:16 -0200 |
commit | b84a20608530cac426818be70bb410f0df1bb9dc (patch) | |
tree | 385f3c1773b4fa1343b613fdc6a02b7cba89bee1 /test | |
parent | 8f788d58c3c58f0559b32fe896a00c35dc58c01e (diff) | |
download | kmod-b84a20608530cac426818be70bb410f0df1bb9dc.tar.gz |
Add test-rmmod2
Remove module without dealing with the loaded modules first.
Diffstat (limited to 'test')
-rw-r--r-- | test/.gitignore | 1 | ||||
-rw-r--r-- | test/test-rmmod2.c | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/test/.gitignore b/test/.gitignore index 1cbe6b8..db1a45e 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -2,3 +2,4 @@ test-init test-loaded test-rmmod +test-rmmod2 diff --git a/test/test-rmmod2.c b/test/test-rmmod2.c new file mode 100644 index 0000000..c3585be --- /dev/null +++ b/test/test-rmmod2.c @@ -0,0 +1,42 @@ +#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 *modname = NULL; + struct kmod_ctx *ctx; + struct kmod_module *mod; + int err; + + if (argc < 2) { + fprintf(stderr, "Provide a module 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) + exit(EXIT_FAILURE); + + printf("Trying to remove '%s'\n", modname); + kmod_module_remove_module(mod, 0); + + kmod_module_unref(mod); + kmod_unref(ctx); + + return EXIT_SUCCESS; +} |