Commit 17023a81 authored by Hugh McMaster's avatar Hugh McMaster Committed by Alexandre Julliard

reg/tests: Comprehensively check for elevated privileges before starting Windows 3.1 import tests.

The existing check fails to adequately determine the program's elevation status on systems where the test key already exists. This can cause all Windows 3.1 import tests to fail on systems with a standard user account. Signed-off-by: 's avatarHugh McMaster <hugh.mcmaster@outlook.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent b369af9a
......@@ -3468,25 +3468,34 @@ static void test_import_win31(void)
{
LONG err;
HKEY hkey;
DWORD dispos, r;
DWORD r;
/* Check if reg.exe is running with elevated privileges */
err = RegCreateKeyExA(HKEY_CLASSES_ROOT, KEY_BASE, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_READ|KEY_SET_VALUE, NULL, &hkey, &dispos);
err = RegDeleteKeyA(HKEY_CLASSES_ROOT, KEY_BASE);
if (err == ERROR_ACCESS_DENIED)
{
win_skip("reg.exe is not running with elevated privileges; "
"skipping Windows 3.1 import tests\n");
return;
}
if (dispos == REG_OPENED_EXISTING_KEY)
delete_value(hkey, NULL);
if (err == ERROR_FILE_NOT_FOUND)
{
if (RegCreateKeyExA(HKEY_CLASSES_ROOT, KEY_BASE, 0, NULL, REG_OPTION_NON_VOLATILE,
KEY_READ, NULL, &hkey, NULL))
{
win_skip("reg.exe is not running with elevated privileges; "
"skipping Windows 3.1 import tests\n");
return;
}
RegCloseKey(hkey);
RegDeleteKeyA(HKEY_CLASSES_ROOT, KEY_BASE);
}
/* Test simple value */
test_import_str("REGEDIT\r\n"
"HKEY_CLASSES_ROOT\\" KEY_BASE " = Value0\r\n", &r);
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
open_key(HKEY_CLASSES_ROOT, KEY_BASE, KEY_SET_VALUE, &hkey);
verify_reg(hkey, "", REG_SZ, "Value0", 7, 0);
/* Test proper handling of spaces and equals signs */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment