Juan Lang : advapi32: Test the MachineGuid value.

Alexandre Julliard julliard at winehq.org
Tue Mar 25 14:20:01 CDT 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Tue Mar 25 10:38:30 2008 -0700

advapi32: Test the MachineGuid value.

---

 dlls/advapi32/tests/crypt.c |   48 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/dlls/advapi32/tests/crypt.c b/dlls/advapi32/tests/crypt.c
index d6453d4..1832ca1 100644
--- a/dlls/advapi32/tests/crypt.c
+++ b/dlls/advapi32/tests/crypt.c
@@ -871,6 +871,53 @@ static void test_set_provider_ex(void)
 	LocalFree(pszProvName);
 }
 
+static void test_machine_guid(void)
+{
+   char originalGuid[40], guid[40];
+   LONG r;
+   HKEY key;
+   DWORD size;
+   HCRYPTPROV hCryptProv;
+   BOOL restoreGuid = FALSE, ret;
+
+   r = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography",
+                     0, KEY_ALL_ACCESS, &key);
+   if (r != ERROR_SUCCESS)
+   {
+       skip("couldn't open HKLM\\Software\\Microsoft\\Cryptography\n");
+       return;
+   }
+   /* Cache existing MachineGuid, and delete it */
+   size = sizeof(originalGuid);
+   r = RegQueryValueExA(key, "MachineGuid", NULL, NULL, (BYTE *)originalGuid,
+                        &size);
+   if (r == ERROR_SUCCESS)
+   {
+       restoreGuid = TRUE;
+       r = RegDeleteValueA(key, "MachineGuid");
+       ok(!r, "RegDeleteValueA failed: %d\n", r);
+   }
+   else
+       ok(r == ERROR_FILE_NOT_FOUND, "expected ERROR_FILE_NOT_FOUND, got %d\n",
+          r);
+   /* Create and release a provider */
+   ret = pCryptAcquireContextA(&hCryptProv, szKeySet, NULL, PROV_RSA_FULL, 0);
+   ok(ret, "CryptAcquireContextA failed: %08x\n", GetLastError());
+   CryptReleaseContext(hCryptProv, 0);
+   /* Check that MachineGuid was created */
+   size = sizeof(guid);
+   r = RegQueryValueExA(key, "MachineGuid", NULL, NULL, (BYTE *)guid, &size);
+   todo_wine
+   ok(!r, "expected to find MachineGuid: %d\n", r);
+   r = RegDeleteValueA(key, "MachineGuid");
+   todo_wine
+   ok(!r, "RegDeleteValueA failed: %d\n", r);
+   if (restoreGuid)
+       RegSetValueExA(key, "MachineGuid", 0, REG_SZ, (const BYTE *)originalGuid,
+                      strlen(originalGuid)+1);
+   RegCloseKey(key);
+}
+
 START_TEST(crypt)
 {
 	init_function_pointers();
@@ -879,6 +926,7 @@ START_TEST(crypt)
 	test_acquire_context();
 	test_incorrect_api_usage();
 	test_verify_sig();
+	test_machine_guid();
 	clean_up_environment();
 	}
 	




More information about the wine-cvs mailing list