]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
test: add check of module's state
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Wed, 11 Jan 2012 23:22:21 +0000 (21:22 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Wed, 11 Jan 2012 23:22:21 +0000 (21:22 -0200)
Makefile.am
test/.gitignore
test/test-state.c [new file with mode: 0644]

index 4e28ed4ebaae1d66b4efc830ad6899067dc79c2c..42818ea70d09ffbee022cd756be02f13e0c7c23f 100644 (file)
@@ -133,7 +133,7 @@ check_PROGRAMS = test/test-init test/test-loaded \
                 test/test-lookup test/test-path-from-name \
                 test/test-get-dependencies test/test-mod-double-ref \
                 test/test-blacklist test/test-elf test/test-probe \
-                test/test-invalidate-config
+                test/test-invalidate-config test/test-state
 
 TESTS = test/test-init test/test-loaded
 
@@ -151,5 +151,6 @@ test_test_blacklist_LDADD = libkmod/libkmod-private.la
 test_test_elf_LDADD = libkmod/libkmod-private.la
 test_test_probe_LDADD = libkmod/libkmod-private.la
 test_test_invalidate_config_LDADD = libkmod/libkmod-private.la
+test_test_state_LDADD = libkmod/libkmod-private.la
 
 DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
index a71ab5e3edbedd142f5b7583f5323326ab4d8e3d..61f2738215b67a927158bf54698efc7c04455c15 100644 (file)
@@ -12,3 +12,4 @@ test-blacklist
 test-elf
 test-probe
 test-invalidate-config
+test-state
diff --git a/test/test-state.c b/test/test-state.c
new file mode 100644 (file)
index 0000000..b34edfb
--- /dev/null
@@ -0,0 +1,49 @@
+#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 *name;
+       struct kmod_ctx *ctx;
+       struct kmod_module *mod;
+       int err;
+       const char *state;
+
+       if (argc < 2) {
+               fprintf(stderr, "Provide a module name\n");
+               return EXIT_FAILURE;
+       }
+
+       name = argv[1];
+
+       ctx = kmod_new(NULL, NULL);
+       if (ctx == NULL)
+               exit(EXIT_FAILURE);
+
+       printf("libkmod version %s\n", VERSION);
+
+       err = kmod_module_new_from_name(ctx, name, &mod);
+       if (err < 0) {
+               kmod_unref(ctx);
+               exit(EXIT_FAILURE);
+       }
+
+       state = kmod_module_initstate_str(kmod_module_get_initstate(mod));
+       if (state == NULL)
+               printf("Module '%s' not found.\n", name);
+       else
+               printf("Module '%s' is in '%s' state.\n", name, state);
+
+
+       kmod_module_unref(mod);
+       kmod_unref(ctx);
+
+       return EXIT_SUCCESS;
+}