diff options
Diffstat (limited to 'gck/tests/test-gck-module.c')
-rw-r--r-- | gck/tests/test-gck-module.c | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/gck/tests/test-gck-module.c b/gck/tests/test-gck-module.c deleted file mode 100644 index b5db530a..00000000 --- a/gck/tests/test-gck-module.c +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* test-gck-module.c - the GObject PKCS#11 wrapper library - - Copyright (C) 2011 Collabora Ltd. - - The Gnome Keyring Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The Gnome Keyring Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the Gnome Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - - Author: Stef Walter <stefw@collabora.co.uk> -*/ - -#include "config.h" - -#include <errno.h> -#include <glib.h> -#include <string.h> - -#include "egg/egg-testing.h" - -#include "gck/gck.h" -#include "gck/gck-test.h" - -typedef struct { - GckModule *module; -} Test; - -static void -setup (Test *test, gconstpointer unused) -{ - GError *err = NULL; - - /* Successful load */ - test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err); - g_assert_no_error (err); - g_assert (test->module); -} - -static void -teardown (Test *test, gconstpointer unused) -{ - g_object_unref (test->module); -} - -static void -fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data) -{ - *((GAsyncResult**)user_data) = result; - g_object_ref (result); - egg_test_wait_stop (); -} - -static void -test_initialize_async (void) -{ - GckModule *module; - GAsyncResult *result; - GError *error = NULL; - - /* Shouldn't be able to load modules */ - gck_module_initialize_async (BUILDDIR "/.libs/libmock-test-module.so", - NULL, fetch_async_result, &result); - - egg_test_wait_until (500); - g_assert (result != NULL); - - /* Get the result */ - module = gck_module_initialize_finish (result, &error); - g_assert_no_error (error); - g_assert (GCK_IS_MODULE (module)); - - g_object_unref (result); - g_object_unref (module); -} - - -static void -test_invalid_modules (Test *test, gconstpointer unused) -{ - GckModule *invalid; - GError *error = NULL; - - /* Shouldn't be able to load modules */ - invalid = gck_module_initialize ("blah-blah-non-existant", NULL, &error); - g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM); - g_assert (invalid == NULL); - - g_clear_error (&error); - - /* Shouldn't be able to load any file successfully */ - invalid = gck_module_initialize ("/usr/lib/libm.so", NULL, &error); - g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM); - g_assert (invalid == NULL); - - g_clear_error (&error); -} - -static void -test_module_equals_hash (Test *test, gconstpointer unused) -{ - GckModule *other; - GObject *obj; - guint hash; - - hash = gck_module_hash (test->module); - g_assert (hash != 0); - - g_assert (gck_module_equal (test->module, test->module)); - - other = gck_module_new (gck_module_get_functions (test->module)); - obj = g_object_new (G_TYPE_OBJECT, NULL); - - g_assert (gck_module_equal (test->module, other)); - - /* TODO: Could do with another test for inequality */ - g_assert (!gck_module_equal (test->module, obj)); - - g_object_unref (other); - g_object_unref (obj); -} - -static void -test_module_props (Test *test, gconstpointer unused) -{ - gchar *path; - - g_object_get (test->module, "path", &path, NULL); - g_assert (path != NULL && "no module-path"); - g_assert (strcmp (BUILDDIR "/.libs/libmock-test-module.so", path) == 0 && "module path wrong"); - g_free (path); -} - -static void -test_module_info (Test *test, gconstpointer unused) -{ - GckModuleInfo *info; - - info = gck_module_get_info (test->module); - g_assert (info != NULL && "no module info"); - - g_assert (info->pkcs11_version_major == CRYPTOKI_VERSION_MAJOR && "wrong major version"); - g_assert (info->pkcs11_version_minor == CRYPTOKI_VERSION_MINOR && "wrong minor version"); - g_assert (strcmp ("TEST MANUFACTURER", info->manufacturer_id) == 0); - g_assert (strcmp ("TEST LIBRARY", info->library_description) == 0); - g_assert (0 == info->flags); - g_assert (45 == info->library_version_major); - g_assert (145 == info->library_version_minor); - - gck_module_info_free (info); -} - -int -main (int argc, char **argv) -{ - g_type_init (); - g_test_init (&argc, &argv, NULL); - - g_test_add_func ("/gck/module/initialize_async", test_initialize_async); - g_test_add ("/gck/module/invalid_modules", Test, NULL, setup, test_invalid_modules, teardown); - g_test_add ("/gck/module/module_equals_hash", Test, NULL, setup, test_module_equals_hash, teardown); - g_test_add ("/gck/module/module_props", Test, NULL, setup, test_module_props, teardown); - g_test_add ("/gck/module/module_info", Test, NULL, setup, test_module_info, teardown); - - return egg_tests_run_in_thread_with_loop (); -} |