Juan Lang : crypt32/tests: Only load crypt32 once.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Aug 11 13:37:23 CDT 2006
Module: wine
Branch: master
Commit: ea79639b03685045122abb33c40e43bb42e31e62
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=ea79639b03685045122abb33c40e43bb42e31e62
Author: Juan Lang <juan_lang at yahoo.com>
Date: Fri Aug 11 07:23:05 2006 -0700
crypt32/tests: Only load crypt32 once.
---
dlls/crypt32/tests/main.c | 178 ++++++++++++++++++++++-----------------------
1 files changed, 87 insertions(+), 91 deletions(-)
diff --git a/dlls/crypt32/tests/main.c b/dlls/crypt32/tests/main.c
index 0ce8e41..128120b 100644
--- a/dlls/crypt32/tests/main.c
+++ b/dlls/crypt32/tests/main.c
@@ -28,6 +28,8 @@ #include <winreg.h>
#include "wine/test.h"
+HMODULE hCrypt;
+
static void test_findAttribute(void)
{
PCRYPT_ATTRIBUTE ret;
@@ -208,68 +210,64 @@ static I_CryptFreeTlsFunc pI_CryptFreeTl
static void test_cryptTls(void)
{
- HMODULE lib = LoadLibraryA("crypt32.dll");
+ DWORD index;
+ BOOL ret;
- if (lib)
- {
- DWORD index;
- BOOL ret;
+ if (!hCrypt) return;
- pI_CryptAllocTls = (I_CryptAllocTlsFunc)GetProcAddress(lib,
- "I_CryptAllocTls");
- pI_CryptDetachTls = (I_CryptDetachTlsFunc)GetProcAddress(lib,
- "I_CryptDetachTls");
- pI_CryptGetTls = (I_CryptGetTlsFunc)GetProcAddress(lib,
- "I_CryptGetTls");
- pI_CryptSetTls = (I_CryptSetTlsFunc)GetProcAddress(lib,
- "I_CryptSetTls");
- pI_CryptFreeTls = (I_CryptFreeTlsFunc)GetProcAddress(lib,
- "I_CryptFreeTls");
+ pI_CryptAllocTls = (I_CryptAllocTlsFunc)GetProcAddress(hCrypt,
+ "I_CryptAllocTls");
+ pI_CryptDetachTls = (I_CryptDetachTlsFunc)GetProcAddress(hCrypt,
+ "I_CryptDetachTls");
+ pI_CryptGetTls = (I_CryptGetTlsFunc)GetProcAddress(hCrypt,
+ "I_CryptGetTls");
+ pI_CryptSetTls = (I_CryptSetTlsFunc)GetProcAddress(hCrypt,
+ "I_CryptSetTls");
+ pI_CryptFreeTls = (I_CryptFreeTlsFunc)GetProcAddress(hCrypt,
+ "I_CryptFreeTls");
- /* One normal pass */
- index = pI_CryptAllocTls();
- ok(index, "I_CryptAllocTls failed: %08lx\n", GetLastError());
- if (index)
- {
- LPVOID ptr;
+ /* One normal pass */
+ index = pI_CryptAllocTls();
+ ok(index, "I_CryptAllocTls failed: %08lx\n", GetLastError());
+ if (index)
+ {
+ LPVOID ptr;
- ptr = pI_CryptGetTls(index);
- ok(!ptr, "Expected NULL\n");
- ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef);
- ok(ret, "I_CryptSetTls failed: %08lx\n", GetLastError());
- ptr = pI_CryptGetTls(index);
- ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
- /* This crashes
- ret = pI_CryptFreeTls(index, 1);
- */
- ret = pI_CryptFreeTls(index, 0);
- ok(ret, "I_CryptFreeTls failed: %08lx\n", GetLastError());
- ret = pI_CryptFreeTls(index, 0);
- /* Not sure if this fails because TlsFree should fail, so leave as
- * todo for now.
- */
- todo_wine ok(!ret && GetLastError() == E_INVALIDARG,
- "Expected E_INVALIDARG, got %08lx\n", GetLastError());
- }
- /* Similar pass, check I_CryptDetachTls */
- index = pI_CryptAllocTls();
- ok(index, "I_CryptAllocTls failed: %08lx\n", GetLastError());
- if (index)
- {
- LPVOID ptr;
+ ptr = pI_CryptGetTls(index);
+ ok(!ptr, "Expected NULL\n");
+ ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef);
+ ok(ret, "I_CryptSetTls failed: %08lx\n", GetLastError());
+ ptr = pI_CryptGetTls(index);
+ ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
+ /* This crashes
+ ret = pI_CryptFreeTls(index, 1);
+ */
+ ret = pI_CryptFreeTls(index, 0);
+ ok(ret, "I_CryptFreeTls failed: %08lx\n", GetLastError());
+ ret = pI_CryptFreeTls(index, 0);
+ /* Not sure if this fails because TlsFree should fail, so leave as
+ * todo for now.
+ */
+ todo_wine ok(!ret && GetLastError() == E_INVALIDARG,
+ "Expected E_INVALIDARG, got %08lx\n", GetLastError());
+ }
+ /* Similar pass, check I_CryptDetachTls */
+ index = pI_CryptAllocTls();
+ ok(index, "I_CryptAllocTls failed: %08lx\n", GetLastError());
+ if (index)
+ {
+ LPVOID ptr;
- ptr = pI_CryptGetTls(index);
- ok(!ptr, "Expected NULL\n");
- ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef);
- ok(ret, "I_CryptSetTls failed: %08lx\n", GetLastError());
- ptr = pI_CryptGetTls(index);
- ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
- ptr = pI_CryptDetachTls(index);
- ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
- ptr = pI_CryptGetTls(index);
- ok(!ptr, "Expected NULL\n");
- }
- FreeLibrary(lib);
+ ptr = pI_CryptGetTls(index);
+ ok(!ptr, "Expected NULL\n");
+ ret = pI_CryptSetTls(index, (LPVOID)0xdeadbeef);
+ ok(ret, "I_CryptSetTls failed: %08lx\n", GetLastError());
+ ptr = pI_CryptGetTls(index);
+ ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
+ ptr = pI_CryptDetachTls(index);
+ ok(ptr == (LPVOID)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", ptr);
+ ptr = pI_CryptGetTls(index);
+ ok(!ptr, "Expected NULL\n");
}
}
@@ -278,51 +276,49 @@ typedef BOOL (WINAPI *I_CryptReadTrusted
static void test_readTrustedPublisherDWORD(void)
{
- HMODULE lib = LoadLibraryA("crypt32.dll");
+ I_CryptReadTrustedPublisherDWORDValueFromRegistryFunc pReadDWORD;
- if (lib)
+ if (!hCrypt) return;
+
+ pReadDWORD =
+ (I_CryptReadTrustedPublisherDWORDValueFromRegistryFunc)GetProcAddress(
+ hCrypt, "I_CryptReadTrustedPublisherDWORDValueFromRegistry");
+ if (pReadDWORD)
{
- I_CryptReadTrustedPublisherDWORDValueFromRegistryFunc pReadDWORD =
- (I_CryptReadTrustedPublisherDWORDValueFromRegistryFunc)GetProcAddress(
- lib, "I_CryptReadTrustedPublisherDWORDValueFromRegistry");
+ static const WCHAR safer[] = {
+ 'S','o','f','t','w','a','r','e','\\',
+ 'P','o','l','i','c','i','e','s','\\',
+ 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m',
+ 'C','e','r','t','i','f','i','c','a','t','e','s','\\',
+ 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r',
+ '\\','S','a','f','e','r',0 };
+ static const WCHAR authenticodeFlags[] = { 'A','u','t','h','e','n',
+ 't','i','c','o','d','e','F','l','a','g','s',0 };
+ BOOL ret, exists = FALSE;
+ DWORD size, readFlags, returnedFlags;
+ HKEY key;
+ LONG rc;
- if (pReadDWORD)
+ rc = RegOpenKeyW(HKEY_LOCAL_MACHINE, safer, &key);
+ if (rc == ERROR_SUCCESS)
{
- static const WCHAR safer[] = {
- 'S','o','f','t','w','a','r','e','\\',
- 'P','o','l','i','c','i','e','s','\\',
- 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m',
- 'C','e','r','t','i','f','i','c','a','t','e','s','\\',
- 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r',
- '\\','S','a','f','e','r',0 };
- static const WCHAR authenticodeFlags[] = { 'A','u','t','h','e','n',
- 't','i','c','o','d','e','F','l','a','g','s',0 };
- BOOL ret, exists = FALSE;
- DWORD size, readFlags, returnedFlags;
- HKEY key;
- LONG rc;
-
- rc = RegOpenKeyW(HKEY_LOCAL_MACHINE, safer, &key);
+ size = sizeof(readFlags);
+ rc = RegQueryValueExW(key, authenticodeFlags, NULL, NULL,
+ (LPBYTE)&readFlags, &size);
if (rc == ERROR_SUCCESS)
- {
- size = sizeof(readFlags);
- rc = RegQueryValueExW(key, authenticodeFlags, NULL, NULL,
- (LPBYTE)&readFlags, &size);
- if (rc == ERROR_SUCCESS)
- exists = TRUE;
- }
- ret = pReadDWORD(authenticodeFlags, &returnedFlags);
- ok(ret == exists, "Unexpected return value\n");
- if (exists)
- ok(readFlags == returnedFlags,
- "Expected flags %08lx, got %08lx\n", readFlags, returnedFlags);
+ exists = TRUE;
}
- FreeLibrary(lib);
+ ret = pReadDWORD(authenticodeFlags, &returnedFlags);
+ ok(ret == exists, "Unexpected return value\n");
+ if (exists)
+ ok(readFlags == returnedFlags,
+ "Expected flags %08lx, got %08lx\n", readFlags, returnedFlags);
}
}
START_TEST(main)
{
+ hCrypt = LoadLibraryA("crypt32.dll");
test_findAttribute();
test_findExtension();
test_findRDNAttr();
More information about the wine-cvs
mailing list