aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2011-11-25 01:24:16 -0200
committerLucas De Marchi <lucas.demarchi@profusion.mobi>2011-11-25 01:24:16 -0200
commitb84a20608530cac426818be70bb410f0df1bb9dc (patch)
tree385f3c1773b4fa1343b613fdc6a02b7cba89bee1 /test
parent8f788d58c3c58f0559b32fe896a00c35dc58c01e (diff)
downloadkmod-b84a20608530cac426818be70bb410f0df1bb9dc.tar.gz
Add test-rmmod2
Remove module without dealing with the loaded modules first.
Diffstat (limited to 'test')
-rw-r--r--test/.gitignore1
-rw-r--r--test/test-rmmod2.c42
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;
+}