summaryrefslogtreecommitdiff
path: root/tools/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tests')
-rw-r--r--tools/tests/test-extract.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/tests/test-extract.c b/tools/tests/test-extract.c
index 8bdd600..5e2f6fe 100644
--- a/tools/tests/test-extract.c
+++ b/tools/tests/test-extract.c
@@ -272,6 +272,54 @@ test_info_skip_non_certificate (CuTest *tc)
teardown (tc);
}
+static void
+test_limit_to_purpose_match (CuTest *tc)
+{
+ CK_RV rv;
+
+ setup (tc);
+
+ mock_module_add_object (MOCK_SLOT_ONE_ID, cacert3_authority_attrs);
+ mock_module_add_object (MOCK_SLOT_ONE_ID, extension_eku_server_client);
+
+ p11_extract_info_limit_purpose (&test.ex, P11_OID_SERVER_AUTH_STR);
+ p11_kit_iter_add_callback (test.iter, p11_extract_info_load_filter, &test.ex, NULL);
+ p11_kit_iter_begin_with (test.iter, &test.module, 0, 0);
+
+ p11_message_quiet ();
+
+ rv = p11_kit_iter_next (test.iter);
+ CuAssertIntEquals (tc, CKR_OK, rv);
+
+ p11_message_loud ();
+
+ teardown (tc);
+}
+
+static void
+test_limit_to_purpose_no_match (CuTest *tc)
+{
+ CK_RV rv;
+
+ setup (tc);
+
+ mock_module_add_object (MOCK_SLOT_ONE_ID, cacert3_authority_attrs);
+ mock_module_add_object (MOCK_SLOT_ONE_ID, extension_eku_server_client);
+
+ p11_extract_info_limit_purpose (&test.ex, "3.3.3.3");
+ p11_kit_iter_add_callback (test.iter, p11_extract_info_load_filter, &test.ex, NULL);
+ p11_kit_iter_begin_with (test.iter, &test.module, 0, 0);
+
+ p11_message_quiet ();
+
+ rv = p11_kit_iter_next (test.iter);
+ CuAssertIntEquals (tc, CKR_CANCEL, rv);
+
+ p11_message_loud ();
+
+ teardown (tc);
+}
+
int
main (void)
{
@@ -290,6 +338,8 @@ main (void)
SUITE_ADD_TEST (suite, test_info_limit_purposes);
SUITE_ADD_TEST (suite, test_info_invalid_purposes);
SUITE_ADD_TEST (suite, test_info_skip_non_certificate);
+ SUITE_ADD_TEST (suite, test_limit_to_purpose_match);
+ SUITE_ADD_TEST (suite, test_limit_to_purpose_no_match);
CuSuiteRun (suite);
CuSuiteSummary (suite, output);