[PATCH v3 5/6] reg.exe/tests: Add REG_BINARY tests for reg add
Jonathan Vollebregt
jnvsor at gmail.com
Wed Oct 22 11:13:29 CDT 2014
Have to add an exception to verify_reg and check it manually
because winXP suffixes a 0 nibble while the rest prefix it.
---
programs/reg/tests/reg.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index 1009585..8d61392 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -158,6 +158,39 @@ static void test_add(void)
ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected %u\n", r, REG_EXIT_SUCCESS);
verify_reg(hkey, "expand3", REG_EXPAND_SZ, "", 1, TODO_REG_SIZE);
+ /* REG_BINARY */
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_BINARY /v bin0 /f", &r);
+ ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected %u\n", r, REG_EXIT_SUCCESS);
+ verify_reg(hkey, "bin0", REG_BINARY, buffer, 0, 0);
+
+ run_reg_exe("reg add HKEY_CURRENT_USER\\" KEY_BASE " /ve /t REG_BINARY /d deadbeef /f", &r);
+ ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected %u\n", r, REG_EXIT_SUCCESS);
+ dword = 0xefbeadde;
+ verify_reg(hkey, "", REG_BINARY, &dword, sizeof(DWORD), TODO_REG_SIZE);
+
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_BINARY /v bin1 /f /d 0xDeAdBeEf", &r);
+ todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %u, expected %u\n", r, REG_EXIT_FAILURE);
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_BINARY /v bin2 /f /d x01", &r);
+ todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %u, expected %u\n", r, REG_EXIT_FAILURE);
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_BINARY /v bin3 /f /d 01x", &r);
+ todo_wine ok(r == REG_EXIT_FAILURE, "got exit code %u, expected %u\n", r, REG_EXIT_FAILURE);
+
+ run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_BINARY /v bin4 /f /d DeAdBeEf0DD", &r);
+ ok(r == REG_EXIT_SUCCESS, "got exit code %u, expected %u\n", r, REG_EXIT_SUCCESS);
+ /* Remaining nibble prefixed */
+ buffer[0] = 0x0d; buffer[1] = 0xea; buffer[2] = 0xdb;
+ buffer[3] = 0xee; buffer[4] = 0xf0; buffer[5] = 0xdd;
+ /* Remaining nibble suffixed on winXP */
+ buffer[6] = 0xde; buffer[7] = 0xad; buffer[8] = 0xbe;
+ buffer[9] = 0xef; buffer[10] = 0x0d; buffer[11] = 0xd0;
+ size = 6;
+ err = RegQueryValueExA(hkey, "bin4", NULL, &type, (void *) (buffer+12), &size);
+ ok(err == ERROR_SUCCESS, "RegQueryValueEx failed: got %d\n", err);
+ ok(type == REG_BINARY, "got wrong type %u, expected %u\n", type, REG_BINARY);
+ todo_wine ok(size == 6, "got wrong size %u, expected %u\n", size, 6);
+ todo_wine ok(memcmp(buffer, buffer+12, 6) == 0 ||
+ broken(memcmp(buffer+6, buffer+12, 6) == 0 /* WinXP */), "got wrong data\n");
+
/* REG_DWORD */
run_reg_exe("reg add HKCU\\" KEY_BASE " /t REG_DWORD /f /d 12345678", &r);
ok(r == REG_EXIT_SUCCESS || broken(r == REG_EXIT_FAILURE /* WinXP */),
--
2.1.1
More information about the wine-patches
mailing list