[PATCH 3/3] reg/tests: Test use of registry views when querying registry values

Hugh McMaster hugh.mcmaster at outlook.com
Thu Jul 1 08:22:49 CDT 2021


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

diff --git a/programs/reg/tests/query.c b/programs/reg/tests/query.c
index eca392b64d9..dcc98a9a0c4 100644
--- a/programs/reg/tests/query.c
+++ b/programs/reg/tests/query.c
@@ -322,6 +322,12 @@ static const char *test9b = "\r\n"
     "    Test4    REG_DWORD    0xabc\r\n"
     "    Wine    REG_SZ    Second instance\r\n\r\n";
 
+static const char *test9c = "\r\n"
+    "HKEY_LOCAL_MACHINE\\" KEY_BASE "\r\n"
+    "    Wine    REG_SZ    First instance\r\n\r\n"
+    "HKEY_LOCAL_MACHINE\\" KEY_BASE "\\subkey\r\n"
+    "    Wine    REG_SZ    Second instance\r\n\r\n";
+
 static void create_test_key(REGSAM sam)
 {
     HKEY hkey, subkey;
@@ -367,6 +373,10 @@ static void test_registry_view_win32(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, 0);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:32", buf, sizeof(buf), &r);
+    ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, 0);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_32KEY);
 
     /* Try querying the 64-bit registry view, which doesn't exist on 32-bit Windows */
@@ -380,6 +390,10 @@ static void test_registry_view_win32(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, 0);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:64", buf, sizeof(buf), &r);
+    ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, 0);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_64KEY);
 }
 
@@ -407,6 +421,10 @@ static void test_registry_view_win64(void)
     todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, TODO_REG_COMPARE);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:32", buf, sizeof(buf), &r);
+    todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, TODO_REG_COMPARE);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_32KEY);
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_64KEY);
 
@@ -421,6 +439,10 @@ static void test_registry_view_win64(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, 0);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:64", buf, sizeof(buf), &r);
+    ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, 0);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_64KEY);
 }
 
@@ -447,6 +469,10 @@ static void test_registry_view_wow64(void)
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, 0);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:32", buf, sizeof(buf), &r);
+    ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, 0);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_32KEY);
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_64KEY);
 
@@ -461,6 +487,10 @@ static void test_registry_view_wow64(void)
     todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
     compare_query(buf, test9b, FALSE, TODO_REG_COMPARE);
 
+    read_reg_output("reg query HKLM\\" KEY_BASE " /v Wine /s /reg:64", buf, sizeof(buf), &r);
+    todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
+    compare_query(buf, test9c, TRUE, TODO_REG_COMPARE);
+
     delete_tree(HKEY_LOCAL_MACHINE, KEY_BASE, KEY_WOW64_64KEY);
 }
 
-- 
2.32.0




More information about the wine-devel mailing list