From fab4978ac11bb67f707db447de127e8defec052b Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Tue, 6 Dec 2011 03:49:30 -0200 Subject: [PATCH] test: add test for modules' hash --- Makefile.am | 7 ++++- test/.gitignore | 1 + test/test-mod-double-ref.c | 56 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 test/test-mod-double-ref.c 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; +} -- 2.47.2