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

This commit is contained in:
Paul Vriens 2008-02-12 18:09:23 +01:00 committed by Alexandre Julliard
parent b1789fc73f
commit 56d085ccec
1 changed files with 24 additions and 9 deletions

View File

@ -34,7 +34,6 @@ static const char szKeySet[] = "wine_test_keyset";
static const char szBadKeySet[] = "wine_test_bad_keyset"; static const char szBadKeySet[] = "wine_test_bad_keyset";
#define NON_DEF_PROV_TYPE 999 #define NON_DEF_PROV_TYPE 999
static HMODULE hadvapi32;
static BOOL (WINAPI *pCryptAcquireContextA)(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD); static BOOL (WINAPI *pCryptAcquireContextA)(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD);
static BOOL (WINAPI *pCryptEnumProviderTypesA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*); static BOOL (WINAPI *pCryptEnumProviderTypesA)(DWORD, DWORD*, DWORD, DWORD*, LPSTR, DWORD*);
static BOOL (WINAPI *pCryptEnumProvidersA)(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) static void init_function_pointers(void)
{ {
hadvapi32 = GetModuleHandleA("advapi32.dll"); HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll");
pCryptAcquireContextA = (void*)GetProcAddress(hadvapi32, "CryptAcquireContextA"); pCryptAcquireContextA = (void*)GetProcAddress(hadvapi32, "CryptAcquireContextA");
pCryptEnumProviderTypesA = (void*)GetProcAddress(hadvapi32, "CryptEnumProviderTypesA"); 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); result = pCryptImportKey(hProv, &temp, 1, (HCRYPTKEY)NULL, 0, &hKey2);
ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
dwLen = 1; if (pCryptSignHashW)
result = pCryptSignHashW(hHash, 0, NULL, 0, &temp, &dwLen); {
ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER || dwLen = 1;
GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%d\n", GetLastError()); 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); result = pCryptSetKeyParam(hKey, 0, &temp, 1);
ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); 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); result = pCryptSetProvParam(hProv, 0, &temp, 1);
ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
result = pCryptVerifySignatureW(hHash, &temp, 1, hKey, NULL, 0); if (pCryptVerifySignatureW)
ok (!result && (GetLastError() == ERROR_INVALID_PARAMETER || {
GetLastError() == ERROR_CALL_NOT_IMPLEMENTED), "%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());
}
else
skip("CryptVerifySignatureW is not available\n");
result = pCryptDestroyHash(hHash); result = pCryptDestroyHash(hHash);
ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError()); ok (!result && GetLastError() == ERROR_INVALID_PARAMETER, "%d\n", GetLastError());
@ -383,6 +392,12 @@ static void test_verify_sig(void)
HCRYPTHASH hash; HCRYPTHASH hash;
BYTE bogus[] = { 0 }; BYTE bogus[] = { 0 };
if (!pCryptVerifySignatureW)
{
skip("CryptVerifySignatureW is not available\n");
return;
}
SetLastError(0xdeadbeef); SetLastError(0xdeadbeef);
ret = pCryptVerifySignatureW(0, NULL, 0, 0, NULL, 0); ret = pCryptVerifySignatureW(0, NULL, 0, 0, NULL, 0);
ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER, ok(!ret && GetLastError() == ERROR_INVALID_PARAMETER,