Add test-rmmod2
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Fri, 25 Nov 2011 03:24:16 +0000 (01:24 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Fri, 25 Nov 2011 03:24:16 +0000 (01:24 -0200)
Remove module without dealing with the loaded modules first.

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

index db30172..13b655b 100644 (file)
@@ -53,6 +53,10 @@ test_test_init_LDADD = libkmod/libkmod.la
 test_test_loaded_SOURCES = test/test-loaded.c
 test_test_loaded_LDADD = libkmod/libkmod.la
 
-noinst_PROGRAMS = test/test-rmmod $(check_PROGRAMS)
+noinst_PROGRAMS = test/test-rmmod test/test-rmmod2 \
+                 $(check_PROGRAMS)
 test_test_rmmod_SOURCES = test/test-rmmod.c
 test_test_rmmod_LDADD = libkmod/libkmod.la
+
+test_test_rmmod2_SOURCES = test/test-rmmod2.c
+test_test_rmmod2_LDADD = libkmod/libkmod.la
index 1cbe6b8..db1a45e 100644 (file)
@@ -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 (file)
index 0000000..c3585be
--- /dev/null
@@ -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;
+}