From: Santino Mazza smazza@codeweavers.com
--- dlls/advapi32/tests/registry.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c index 55a8074f1b7..abb929a58d6 100644 --- a/dlls/advapi32/tests/registry.c +++ b/dlls/advapi32/tests/registry.c @@ -1545,7 +1545,7 @@ static void test_reg_save_key(void) static void test_reg_load_key(void) { DWORD ret; - HKEY hkHandle; + HKEY hkHandle, child_key;
if (!set_privileges(SE_RESTORE_NAME, TRUE) || !set_privileges(SE_BACKUP_NAME, FALSE)) @@ -1557,6 +1557,28 @@ static void test_reg_load_key(void) ret = RegLoadKeyA(HKEY_LOCAL_MACHINE, "Test", "saved_key"); ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret);
+ /* Test behaviour when loading a loaded key again */ + ret = RegOpenKeyA(HKEY_LOCAL_MACHINE, "Test", &hkHandle); + ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret); + + ret = RegCreateKeyA(hkHandle, "child_key", &child_key); + ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret); + + RegCloseKey(child_key); + RegCloseKey(hkHandle); + + ret = RegLoadKeyA(HKEY_LOCAL_MACHINE, "Test", "saved_key"); + todo_wine ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret); + + ret = RegOpenKeyA(HKEY_LOCAL_MACHINE, "Test", &hkHandle); + ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret); + + ret = RegOpenKeyA(hkHandle, "child_key", &child_key); + ok(ret == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", ret); + + RegCloseKey(child_key); + RegCloseKey(hkHandle); + set_privileges(SE_RESTORE_NAME, FALSE);
ret = RegOpenKeyA(HKEY_LOCAL_MACHINE, "Test", &hkHandle);