https://git.reactos.org/?p=reactos.git;a=commitdiff;h=552256c17b8bf69f7bbc76...
commit 552256c17b8bf69f7bbc76b9f836205172b26a1f Author: winesync ros-dev@reactos.org AuthorDate: Sun Jan 16 21:21:18 2022 +0100 Commit: Thomas Csovcsity thc.fr13nd@gmail.com CommitDate: Sun Jun 19 13:06:36 2022 +0200
[WINESYNC] reg/tests: Add key and value order tests for the 'copy' command.
Signed-off-by: Hugh McMaster hugh.mcmaster@outlook.com Signed-off-by: Alexandre Julliard julliard@winehq.org
wine commit id ca57a86074e6109fcc2254e3d58ff225f4335236 by Hugh McMaster hugh.mcmaster@outlook.com --- modules/rostests/winetests/reg/copy.c | 52 +++++++++++++++++++++++++++++++ modules/rostests/winetests/reg/export.c | 24 +++++++------- modules/rostests/winetests/reg/reg_test.h | 2 ++ sdk/tools/winesync/reg.cfg | 2 +- 4 files changed, 67 insertions(+), 13 deletions(-)
diff --git a/modules/rostests/winetests/reg/copy.c b/modules/rostests/winetests/reg/copy.c index 3ed75acad4d..53d990811ac 100644 --- a/modules/rostests/winetests/reg/copy.c +++ b/modules/rostests/winetests/reg/copy.c @@ -325,6 +325,56 @@ static void test_copy_complex_data(void) todo_wine ok(compare_export("file.reg", complex_data_test, 0), "compare_export() failed\n"); }
+static void test_copy_key_order(void) +{ + HKEY hkey; + DWORD r; + + delete_tree(HKEY_CURRENT_USER, COPY_SRC); + verify_key_nonexist(HKEY_CURRENT_USER, COPY_SRC); + + delete_tree(HKEY_CURRENT_USER, KEY_BASE); + verify_key_nonexist(HKEY_CURRENT_USER, KEY_BASE); + + add_key(HKEY_CURRENT_USER, COPY_SRC, &hkey); + add_key(hkey, "Subkey2", NULL); + add_key(hkey, "Subkey1", NULL); + close_key(hkey); + + run_reg_exe("reg copy HKCU\" COPY_SRC " HKCU\" KEY_BASE " /s /f", &r); + todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r); + todo_wine verify_key(HKEY_CURRENT_USER, KEY_BASE); + + run_reg_exe("reg export HKCU\" KEY_BASE " file.reg /y", &r); + todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r); + todo_wine ok(compare_export("file.reg", key_order_test, 0), "compare_export() failed\n"); +} + +static void test_copy_value_order(void) +{ + HKEY hkey; + DWORD r; + + delete_tree(HKEY_CURRENT_USER, COPY_SRC); + verify_key_nonexist(HKEY_CURRENT_USER, COPY_SRC); + + delete_tree(HKEY_CURRENT_USER, KEY_BASE); + verify_key_nonexist(HKEY_CURRENT_USER, KEY_BASE); + + add_key(HKEY_CURRENT_USER, COPY_SRC, &hkey); + add_value(hkey, "Value 2", REG_SZ, "I was added first!", 19); + add_value(hkey, "Value 1", REG_SZ, "I was added second!", 20); + close_key(hkey); + + run_reg_exe("reg copy HKCU\" COPY_SRC " HKCU\" KEY_BASE " /f", &r); + todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r); + todo_wine verify_key(HKEY_CURRENT_USER, KEY_BASE); + + run_reg_exe("reg export HKCU\" KEY_BASE " file.reg /y", &r); + todo_wine ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r); + todo_wine ok(compare_export("file.reg", value_order_test, 0), "compare_export() failed\n"); +} + static void test_copy_hex_data(void) { HKEY hkey; @@ -498,6 +548,8 @@ START_TEST(copy) test_copy_empty_key(); test_copy_simple_data(); test_copy_complex_data(); + test_copy_key_order(); + test_copy_value_order(); test_copy_hex_data(); test_copy_embedded_null_values(); test_copy_slashes(); diff --git a/modules/rostests/winetests/reg/export.c b/modules/rostests/winetests/reg/export.c index be1d9ea4f86..1348b8eebdb 100644 --- a/modules/rostests/winetests/reg/export.c +++ b/modules/rostests/winetests/reg/export.c @@ -99,6 +99,18 @@ const char *complex_data_test = "@=dword:12345678\r\n" ""43981"=hex(abcd):56,61,6c,75,65,00\r\n\r\n";
+const char *key_order_test = + "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n" + "[HKEY_CURRENT_USER\" KEY_BASE "]\r\n\r\n" + "[HKEY_CURRENT_USER\" KEY_BASE "\Subkey1]\r\n\r\n" + "[HKEY_CURRENT_USER\" KEY_BASE "\Subkey2]\r\n\r\n"; + +const char *value_order_test = + "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n" + "[HKEY_CURRENT_USER\" KEY_BASE "]\r\n" + ""Value 2"="I was added first!"\r\n" + ""Value 1"="I was added second!"\r\n\r\n"; + const char *empty_hex_test = "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n" "[HKEY_CURRENT_USER\" KEY_BASE "]\r\n" @@ -164,18 +176,6 @@ static void test_export(void) HKEY hkey, subkey; BYTE hex[4], buffer[8];
- const char *key_order_test = - "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n" - "[HKEY_CURRENT_USER\" KEY_BASE "]\r\n\r\n" - "[HKEY_CURRENT_USER\" KEY_BASE "\Subkey1]\r\n\r\n" - "[HKEY_CURRENT_USER\" KEY_BASE "\Subkey2]\r\n\r\n"; - - const char *value_order_test = - "\xef\xbb\xbfWindows Registry Editor Version 5.00\r\n\r\n" - "[HKEY_CURRENT_USER\" KEY_BASE "]\r\n" - ""Value 2"="I was added first!"\r\n" - ""Value 1"="I was added second!"\r\n\r\n"; - delete_tree(HKEY_CURRENT_USER, KEY_BASE); verify_key_nonexist(HKEY_CURRENT_USER, KEY_BASE);
diff --git a/modules/rostests/winetests/reg/reg_test.h b/modules/rostests/winetests/reg/reg_test.h index 14636b4edc9..28e2d8e3abe 100644 --- a/modules/rostests/winetests/reg/reg_test.h +++ b/modules/rostests/winetests/reg/reg_test.h @@ -81,6 +81,8 @@ BOOL compare_export_(const char *file, unsigned line, const char *filename, extern const char *empty_key_test; extern const char *simple_data_test; extern const char *complex_data_test; +extern const char *key_order_test; +extern const char *value_order_test; extern const char *empty_hex_test; extern const char *empty_hex_test2; extern const char *hex_types_test; diff --git a/sdk/tools/winesync/reg.cfg b/sdk/tools/winesync/reg.cfg index df3d2fff4cf..172377fde56 100644 --- a/sdk/tools/winesync/reg.cfg +++ b/sdk/tools/winesync/reg.cfg @@ -4,4 +4,4 @@ directories: files: programs/reg/resource.h: base/applications/cmdutils/reg/resource.h tags: - wine: baf0254bbb617c3b21c5b068e645615418a5be19 + wine: ca57a86074e6109fcc2254e3d58ff225f4335236