diff options
Diffstat (limited to 'p11-kit/test-proxy.c')
-rw-r--r-- | p11-kit/test-proxy.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/p11-kit/test-proxy.c b/p11-kit/test-proxy.c index bf894f8..f61f37e 100644 --- a/p11-kit/test-proxy.c +++ b/p11-kit/test-proxy.c @@ -233,6 +233,7 @@ teardown (void *unused) #define TWO_MODULE "module: mock-two" SHLEXT "\n" #define ENABLED "enable-in: test-proxy, p11-kit-proxy\n" #define DISABLED "disable-in: p11-kit-proxy\n" +#define EIGHT_MODULE "module: mock-eight" SHLEXT "\n" static CK_ULONG load_modules_and_count_slots (void) @@ -311,6 +312,37 @@ test_disable (void) assert_num_cmp (disabled, <, count); } +static void +test_slot_appear (void) +{ + CK_FUNCTION_LIST_PTR proxy; + CK_ULONG count; + CK_RV rv; + + p11_test_file_write (test.directory, "eight.module", EIGHT_MODULE, strlen (EIGHT_MODULE)); + + rv = C_GetFunctionList (&proxy); + assert (rv == CKR_OK); + + assert (p11_proxy_module_check (proxy)); + + rv = proxy->C_Initialize (NULL); + assert (rv == CKR_OK); + + rv = proxy->C_GetSlotList (CK_TRUE, NULL, &count); + assert (rv == CKR_OK); + assert_num_eq (count, 0); + + rv = proxy->C_GetSlotList (CK_TRUE, NULL, &count); + assert (rv == CKR_OK); + assert_num_eq (count, 1); + + rv = proxy->C_Finalize (NULL); + assert_num_eq (rv, CKR_OK); + + p11_proxy_module_cleanup (); +} + static CK_FUNCTION_LIST_PTR setup_mock_module (CK_SESSION_HANDLE *session) { @@ -388,7 +420,6 @@ main (int argc, { p11_library_init (); p11_kit_be_quiet (); - p11_test (test_initialize_finalize, "/proxy/initialize-finalize"); p11_test (test_initialize_multiple, "/proxy/initialize-multiple"); #ifndef _WIN32 @@ -398,6 +429,7 @@ main (int argc, p11_fixture (setup, teardown); p11_test (test_disable, "/proxy/disable"); p11_test (test_no_slot, "/proxy/no-slot"); + p11_test (test_slot_appear, "/proxy/slot-appear"); test_mock_add_tests ("/proxy"); |