[PATCH 5/5] reg/tests: Use a helper function to delete registry keys

Hugh McMaster hugh.mcmaster at outlook.com
Mon Sep 25 01:55:51 CDT 2017


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/reg/tests/reg.c | 102 +++++++++++++++++++----------------------------
 1 file changed, 42 insertions(+), 60 deletions(-)

diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index a3f43f3184..ea4bce610d 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -128,6 +128,18 @@ static void add_key_(unsigned line, const HKEY hkey, const char *path, HKEY *sub
     lok(err == ERROR_SUCCESS, "RegCreateKeyExA failed: %d\n", err);
 }
 
+#define delete_key(k,p) delete_key_(__LINE__,k,p)
+static void delete_key_(unsigned line, const HKEY hkey, const char *path)
+{
+    if (path && *path)
+    {
+        LONG err;
+
+        err = RegDeleteKeyA(hkey, path);
+        lok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: %d\n", err);
+    }
+}
+
 static LONG delete_tree(const HKEY key, const char *subkey)
 {
     HKEY hkey;
@@ -238,14 +250,12 @@ static void test_add(void)
     run_reg_exe("reg add HKCU\\" KEY_BASE "\\keytest3\\ /f", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %u\n", r);
     verify_key(hkey, "keytest3");
-    err = RegDeleteKeyA(hkey, "keytest3");
-    ok(err == ERROR_SUCCESS, "got exit code %d\n", err);
+    delete_key(hkey, "keytest3");
 
     run_reg_exe("reg add HKCU\\" KEY_BASE "\\keytest4 /f", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %u\n", r);
     verify_key(hkey, "keytest4");
-    err = RegDeleteKeyA(hkey, "keytest4");
-    ok(err == ERROR_SUCCESS, "got exit code %d\n", err);
+    delete_key(hkey, "keytest4");
 
     /* REG_NONE */
     run_reg_exe("reg add HKCU\\" KEY_BASE " /v none0 /d deadbeef /t REG_NONE /f", &r);
@@ -567,8 +577,7 @@ static void test_add(void)
     run_reg_exe("reg add HKCU\\" KEY_BASE " /v invalid4 -", &r);
     ok(r == REG_EXIT_FAILURE, "got exit code %u, expected 1\n", r);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "got %d\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 static void test_delete(void)
@@ -706,8 +715,7 @@ static void test_query(void)
        "got exit code %d, expected 0\n", r);
 
     /* Clean-up, then query */
-    err = RegDeleteKeyA(key, "subkey");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(key, "subkey");
 
     err = RegCloseKey(key);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
@@ -715,8 +723,7 @@ static void test_query(void)
     run_reg_exe("reg query HKCU\\" KEY_BASE "\\subkey", &r);
     ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 
     run_reg_exe("reg query HKCU\\" KEY_BASE, &r);
     ok(r == REG_EXIT_FAILURE, "got exit code %d, expected 1\n", r);
@@ -877,8 +884,7 @@ static void test_import(void)
     err = RegCloseKey(hkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 
     sprintf(cmdline, "reg import %s %s", test1_reg, test2_reg);
     run_reg_exe(cmdline, &r);
@@ -1639,8 +1645,7 @@ static void test_import(void)
     verify_reg(subkey, "Wine\\31", REG_SZ, "Test value", 11, 0);
     err = RegCloseKey(subkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE "\\Subkey\"1");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE "\\Subkey\"1");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey/2]\n"
@@ -1651,8 +1656,7 @@ static void test_import(void)
     verify_reg(subkey, "123/\"4;'5", REG_SZ, "Random value name", 18, 0);
     err = RegCloseKey(subkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE "\\Subkey/2");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE "\\Subkey/2");
 
     /* Test key creation */
     test_import_str("REGEDIT4\n\n"
@@ -1679,15 +1683,13 @@ static void test_import(void)
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1c ]\n", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     verify_key(hkey, "Subkey1c ");
-    err = RegDeleteKeyA(hkey, "Subkey1c ");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(hkey, "Subkey1c ");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1d\t]\n", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     verify_key(hkey, "Subkey1d\t");
-    err = RegDeleteKeyA(hkey, "Subkey1d\t");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(hkey, "Subkey1d\t");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1e\\]\n"
@@ -1699,8 +1701,7 @@ static void test_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1e");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1e");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1f\\\\]\n"
@@ -1713,8 +1714,7 @@ static void test_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1f\\\\");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1f\\\\");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1g\\\\\\\\]\n"
@@ -1728,8 +1728,7 @@ static void test_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1g\\\\");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1g\\\\");
 
     /* Test key deletion. We start by creating some registry keys. */
     test_import_str("REGEDIT4\n\n"
@@ -1974,8 +1973,7 @@ static void test_import(void)
     verify_reg_nonexist(hkey, "Wine54b");
     verify_key(hkey, "Subkey2");
 
-    err = RegDeleteKeyA(hkey, "Subkey2");
-    ok(err == ERROR_SUCCESS, "RegDeleteKey failed: %u\n", err);
+    delete_key(hkey, "Subkey2");
 
     test_import_str("REGEDIT4\n\n"
                     "[HKEY_CURRENT_USER\\" KEY_BASE "]\n"
@@ -2347,8 +2345,7 @@ static void test_import(void)
     err = RegCloseKey(hkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 static void test_unicode_import(void)
@@ -3118,8 +3115,7 @@ static void test_unicode_import(void)
     verify_reg(subkey, "Wine\\31", REG_SZ, "Test value", 11, 0);
     err = RegCloseKey(subkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE "\\Subkey\"1");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE "\\Subkey\"1");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey/2]\n"
@@ -3130,8 +3126,7 @@ static void test_unicode_import(void)
     verify_reg(subkey, "123/\"4;'5", REG_SZ, "Random value name", 18, 0);
     err = RegCloseKey(subkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE "\\Subkey/2");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE "\\Subkey/2");
 
     /* Test key creation */
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
@@ -3158,15 +3153,13 @@ static void test_unicode_import(void)
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1c ]\n", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     verify_key(hkey, "Subkey1c ");
-    err = RegDeleteKeyA(hkey, "Subkey1c ");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(hkey, "Subkey1c ");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1d\t]\n", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     verify_key(hkey, "Subkey1d\t");
-    err = RegDeleteKeyA(hkey, "Subkey1d\t");
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(hkey, "Subkey1d\t");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1e\\]\n"
@@ -3178,8 +3171,7 @@ static void test_unicode_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1e");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1e");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1f\\\\]\n"
@@ -3192,8 +3184,7 @@ static void test_unicode_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1f\\\\");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1f\\\\");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "\\Subkey1g\\\\\\\\]\n"
@@ -3207,8 +3198,7 @@ static void test_unicode_import(void)
     ok(err == ERROR_SUCCESS, "RegOpenKeyExA failed: got %u, expected 0\n", err);
     verify_reg(subkey, "Wine", REG_SZ, "Test value", 11, 0);
     RegCloseKey(subkey);
-    err = RegDeleteKeyA(hkey, "Subkey1g\\\\");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %u, expected 0\n", err);
+    delete_key(hkey, "Subkey1g\\\\");
 
     /* Test key deletion. We start by creating some registry keys. */
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
@@ -3456,8 +3446,7 @@ static void test_unicode_import(void)
     verify_reg_nonexist(hkey, "Wine54b");
     verify_key(hkey, "Subkey2");
 
-    err = RegDeleteKeyA(hkey, "Subkey2");
-    ok(err == ERROR_SUCCESS, "RegDeleteKey failed: %u\n", err);
+    delete_key(hkey, "Subkey2");
 
     test_import_wstr("\xef\xbb\xbfWindows Registry Editor Version 5.00\n\n"
                      "[HKEY_CURRENT_USER\\" KEY_BASE "]\n"
@@ -3836,8 +3825,7 @@ static void test_unicode_import(void)
     err = RegCloseKey(hkey);
     ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 static void test_import_with_whitespace(void)
@@ -3986,8 +3974,7 @@ static void test_import_with_whitespace(void)
     err = RegCloseKey(hkey);
     ok(err == ERROR_SUCCESS, "RegCloseKey failed: got %d, expected 0\n", err);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 static void test_unicode_import_with_whitespace(void)
@@ -4136,8 +4123,7 @@ static void test_unicode_import_with_whitespace(void)
     err = RegCloseKey(hkey);
     ok(err == ERROR_SUCCESS, "RegCloseKey failed: got %d, expected 0\n", err);
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: got %d, expected 0\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 static void test_import_31(void)
@@ -4252,8 +4238,7 @@ static void test_import_31(void)
 
     RegCloseKey(hkey);
 
-    err = RegDeleteKeyA(HKEY_CLASSES_ROOT, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: %d\n", err);
+    delete_key(HKEY_CLASSES_ROOT, KEY_BASE);
 }
 
 #define compare_export(f,e) compare_export_(__LINE__,f,e)
@@ -4487,10 +4472,8 @@ static void test_export(void)
     err = DeleteFileA("file.reg");
     todo_wine ok(err, "DeleteFile failed: %u\n", GetLastError());
 
-    err = RegDeleteKeyA(hkey, "Subkey1");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: %d\n", err);
-    err = RegDeleteKeyA(hkey, "Subkey2");
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: %d\n", err);
+    delete_key(hkey, "Subkey1");
+    delete_key(hkey, "Subkey2");
 
     /* Test the export order of registry values. Windows exports registry values
      * in order of creation; Wine uses alphabetical order.
@@ -4507,8 +4490,7 @@ static void test_export(void)
     err = DeleteFileA("file.reg");
     todo_wine ok(err, "DeleteFile failed: %u\n", GetLastError());
 
-    err = RegDeleteKeyA(HKEY_CURRENT_USER, KEY_BASE);
-    ok(err == ERROR_SUCCESS, "RegDeleteKeyA failed: %d\n", err);
+    delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
 
 START_TEST(reg)
-- 
2.14.1




More information about the wine-patches mailing list