From: Lucas De Marchi Date: Tue, 6 Dec 2011 05:49:30 +0000 (-0200) Subject: test: add test for modules' hash X-Git-Tag: v1~82 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fab4978ac11bb67f707db447de127e8defec052b;p=thirdparty%2Fkmod.git test: add test for modules' hash --- diff --git a/Makefile.am b/Makefile.am index f6534edd..da91e5c7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/test/.gitignore b/test/.gitignore index 8f4db599..c22a7212 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -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 index 00000000..710957f6 --- /dev/null +++ b/test/test-mod-double-ref.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include +#include + + +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; +}