]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
test: add test for modules' hash
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 05:49:30 +0000 (03:49 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Tue, 6 Dec 2011 05:49:30 +0000 (03:49 -0200)
Makefile.am
test/.gitignore
test/test-mod-double-ref.c [new file with mode: 0644]

index f6534eddd3b8fe24a66c0df4635cc2ceef1c6800..da91e5c7e252bf12671b2f9f08ee9271fcae5288 100644 (file)
@@ -59,7 +59,9 @@ test_test_loaded_LDADD = libkmod/libkmod.la
 
 noinst_PROGRAMS = test/test-insmod test/test-rmmod test/test-rmmod2 \
                  test/test-lookup test/test-path-from-name \
-                 test/test-get-dependencies $(check_PROGRAMS)
+                 test/test-get-dependencies test/test-mod-double-ref \
+                 $(check_PROGRAMS)
+
 test_test_rmmod_SOURCES = test/test-rmmod.c
 test_test_rmmod_LDADD = libkmod/libkmod.la
 
@@ -77,3 +79,6 @@ test_test_path_from_name_LDADD = libkmod/libkmod.la
 
 test_test_get_dependencies_SOURCES = test/test-get-dependencies.c
 test_test_get_dependencies_LDADD = libkmod/libkmod.la
+
+test_test_mod_double_ref_SOURCES = test/test-mod-double-ref.c
+test_test_mod_double_ref_LDADD = libkmod/libkmod.la
index 8f4db59909fb0338bdc0931f162205ed98ddb1ab..c22a72127964b9e97a373f79e2e66a80ba8165c2 100644 (file)
@@ -7,3 +7,4 @@ test-insmod
 test-lookup
 test-path-from-name
 test-get-dependencies
+test-mod-double-ref
diff --git a/test/test-mod-double-ref.c b/test/test-mod-double-ref.c
new file mode 100644 (file)
index 0000000..710957f
--- /dev/null
@@ -0,0 +1,56 @@
+#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 *mod1, *mod2;
+       const char *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, &mod1);
+       if (err < 0) {
+               fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
+               goto fail;
+       }
+
+       printf("modname='%s' obj=%p\n", modname, mod1);
+
+       err = kmod_module_new_from_name(ctx, modname, &mod2);
+       if (err < 0) {
+               fprintf(stderr, "error creating module: '%s'\n", strerror(-err));
+               goto fail;
+       }
+
+       printf("modname='%s' obj=%p\n", modname, mod2);
+
+       kmod_module_unref(mod1);
+       kmod_module_unref(mod2);
+       kmod_unref(ctx);
+
+       return EXIT_SUCCESS;
+
+fail:
+       kmod_unref(ctx);
+       return EXIT_FAILURE;
+}