Juan Lang : crypt32: Add basic tests for CryptGetDefaultOIDFunctionAddress.
Alexandre Julliard
julliard at winehq.org
Thu Oct 18 07:59:37 CDT 2007
Module: wine
Branch: master
Commit: ad514dbc204321c9aef81193b3f86d21fbe8b8bb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ad514dbc204321c9aef81193b3f86d21fbe8b8bb
Author: Juan Lang <juan.lang at gmail.com>
Date: Wed Oct 17 09:31:18 2007 -0700
crypt32: Add basic tests for CryptGetDefaultOIDFunctionAddress.
---
dlls/crypt32/tests/oid.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/dlls/crypt32/tests/oid.c b/dlls/crypt32/tests/oid.c
index c42b891..f4f11f0 100644
--- a/dlls/crypt32/tests/oid.c
+++ b/dlls/crypt32/tests/oid.c
@@ -414,6 +414,47 @@ static void test_registerDefaultOIDFunction(void)
"Expected ERROR_FILE_NOT_FOUND, got %08x\n", GetLastError());
}
+static void test_getDefaultOIDFunctionAddress(void)
+{
+ BOOL ret;
+ HCRYPTOIDFUNCSET set;
+ void *funcAddr;
+ HCRYPTOIDFUNCADDR hFuncAddr;
+
+ /* Crash
+ ret = CryptGetDefaultOIDFunctionAddress(0, 0, NULL, 0, NULL, NULL);
+ ret = CryptGetDefaultOIDFunctionAddress(0, 0, NULL, 0, &funcAddr, NULL);
+ ret = CryptGetDefaultOIDFunctionAddress(0, 0, NULL, 0, NULL, &hFuncAddr);
+ ret = CryptGetDefaultOIDFunctionAddress(0, 0, NULL, 0, &funcAddr,
+ &hFuncAddr);
+ */
+ set = CryptInitOIDFunctionSet("CertDllOpenStoreProv", 0);
+ ok(set != 0, "CryptInitOIDFunctionSet failed: %d\n", GetLastError());
+ /* This crashes if hFuncAddr is not 0 to begin with */
+ hFuncAddr = 0;
+ ret = CryptGetDefaultOIDFunctionAddress(set, 0, NULL, 0, &funcAddr,
+ &hFuncAddr);
+ ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
+ "Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError());
+ /* This fails with the normal encoding too, so built-in functions aren't
+ * returned.
+ */
+ ret = CryptGetDefaultOIDFunctionAddress(set, X509_ASN_ENCODING, NULL, 0,
+ &funcAddr, &hFuncAddr);
+ ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
+ "Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError());
+
+ /* Even with a registered dll, this fails (since the dll doesn't exist) */
+ ret = CryptRegisterDefaultOIDFunction(0, "CertDllOpenStoreProv", 0,
+ bogusDll);
+ ok(ret, "CryptRegisterDefaultOIDFunction failed: %08x\n", GetLastError());
+ ret = CryptGetDefaultOIDFunctionAddress(set, 0, NULL, 0, &funcAddr,
+ &hFuncAddr);
+ ok(!ret && GetLastError() == ERROR_FILE_NOT_FOUND,
+ "Expected ERROR_FILE_NOT_FOUND, got %d\n", GetLastError());
+ CryptUnregisterDefaultOIDFunction(0, "CertDllOpenStoreProv", bogusDll);
+}
+
static BOOL WINAPI countOidInfo(PCCRYPT_OID_INFO pInfo, void *pvArg)
{
(*(DWORD *)pvArg)++;
@@ -499,4 +540,5 @@ START_TEST(oid)
test_installOIDFunctionAddress();
test_registerOIDFunction();
test_registerDefaultOIDFunction();
+ test_getDefaultOIDFunctionAddress();
}
More information about the wine-cvs
mailing list