Paul Vriens : advapi32/tests: Only use functions if they are implemented.

Alexandre Julliard julliard at winehq.org
Tue Feb 12 16:46:14 CST 2008


Module: wine
Branch: master
Commit: 56d085ccec9f001de40c2311c05805e1a36c1052
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=56d085ccec9f001de40c2311c05805e1a36c1052

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Tue Feb 12 18:09:23 2008 +0100

advapi32/tests: Only use functions if they are implemented.

---

 dlls/advapi32/tests/crypt.c |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c
index 9fa532c..4f5f431 100644
--- a/dlls/advapi32/tests/crypt.c
+++ b/dlls/advapi32/tests/crypt.c
@@ -34,7 +34,6 @@ static const char szKeySet[] = "wine_test_keyset";
 static const char szBadKeySet[] = "wine_test_bad_keyset";
 #define NON_DEF_PROV_TYPE 999
 
-static HMODULE hadvapi32;
 static BOOL (WINAPI *pCryptAcquireContextA)(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD);
 static BOOL (WINAPI *pCryptEnumProviderTypesA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*);
 static BOOL (WINAPI *pCryptEnumProvidersA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*);
@@ -68,7 +67,7 @@ static BOOL (WINAPI *pCryptVerifySignatureW)(HCRYPTHASH, BYTE*, DWORD, HCRYPTKEY
 
 static void init_function_pointers(void)
 {
-    hadvapi32 = GetModuleHandleA("advapi32.dll");
+    HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll");
 
     pCryptAcquireContextA = (void*)GetProcAddress(hadvapi32, "CryptAcquireContextA");
     pCryptEnumProviderTypesA = (void*)GetProcAddress(hadvapi32, "CryptEnumProviderTypesA");
@@ -324,10 +323,15 @@ static void test_incorrect_api_usage(void)
     result = pCryptImportKey(hProv, &temp, 1, (HCRYPTKEY)NULL, 0, &hKey2);
     ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
 
-    dwLen = 1;
-    result = pCryptSignHashW(hHash, 0, NULL, 0, &temp, &dwLen);
-    ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER ||
-        GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%d\n", GetLastError());
+    if (pCryptSignHashW)
+    {
+        dwLen = 1;
+        result = pCryptSignHashW(hHash, 0, NULL, 0, &temp, &dwLen);
+        ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER ||
+            GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%d\n", GetLastError());
+    }
+    else
+        skip("CryptSignHashW is not available\n");
 
     result = pCryptSetKeyParam(hKey, 0, &temp, 1);
     ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
@@ -338,9 +342,14 @@ static void test_incorrect_api_usage(void)
     result = pCryptSetProvParam(hProv, 0, &temp, 1);
     ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
 
-    result = pCryptVerifySignatureW(hHash, &temp, 1, hKey, NULL, 0);
-    ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER ||
-        GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%d\n", GetLastError());
+    if (pCryptVerifySignatureW)
+    {
+        result = pCryptVerifySignatureW(hHash, &temp, 1, hKey, NULL, 0);
+        ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER ||
+            GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%d\n", GetLastError());
+    }
+    else
+        skip("CryptVerifySignatureW is not available\n");
 
     result = pCryptDestroyHash(hHash);
     ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
@@ -383,6 +392,12 @@ static void test_verify_sig(void)
 	HCRYPTHASH hash;
 	BYTE bogus[] = { 0 };
 
+	if (!pCryptVerifySignatureW)
+	{
+		skip("CryptVerifySignatureW is not available\n");
+		return;
+	}
+
 	SetLastError(0xdeadbeef);
 	ret = pCryptVerifySignatureW(0, NULL, 0, 0, NULL, 0);
 	ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,




More information about the wine-cvs mailing list