https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a2da235c67b04958fc7a2…
commit a2da235c67b04958fc7a28fdb2982a61536da08e
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sat Dec 7 13:08:30 2019 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Sat Dec 7 13:08:30 2019 +0100
[WINSPOOL_WINETEST] Sync with Wine Staging 4.18. CORE-16441
---
modules/rostests/winetests/winspool/info.c | 74 ++++++++++++++++++++----------
1 file changed, 49 insertions(+), 25 deletions(-)
diff --git a/modules/rostests/winetests/winspool/info.c
b/modules/rostests/winetests/winspool/info.c
index 2526cd73833..475c13d9646 100644
--- a/modules/rostests/winetests/winspool/info.c
+++ b/modules/rostests/winetests/winspool/info.c
@@ -75,8 +75,6 @@ static BOOL (WINAPI * pGetPrinterDriverW)(HANDLE, LPWSTR, DWORD,
LPBYTE, DWORD,
static BOOL (WINAPI * pGetPrinterW)(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD);
static BOOL (WINAPI * pSetDefaultPrinterA)(LPCSTR);
static DWORD (WINAPI * pXcvDataW)(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD,
PDWORD);
-static BOOL (WINAPI * pIsValidDevmodeW)(PDEVMODEW, SIZE_T);
-
/* ################################ */
@@ -219,7 +217,7 @@ static struct monitor_entry * find_installed_monitor(void)
if (entry) return entry;
- num_tests = (sizeof(monitor_table)/sizeof(struct monitor_entry));
+ num_tests = ARRAY_SIZE(monitor_table);
/* cleanup */
DeleteMonitorA(NULL, env_x64, winetest);
@@ -1456,7 +1454,7 @@ static void test_GetDefaultPrinter(void)
SetLastError(ERROR_SUCCESS);
retval = pGetDefaultPrinterA(buffer, &exact);
- if (!retval || !exact || !strlen(buffer) ||
+ if (!retval || !exact || !*buffer ||
(ERROR_SUCCESS != GetLastError())) {
if ((ERROR_FILE_NOT_FOUND == GetLastError()) ||
(ERROR_INVALID_NAME == GetLastError()))
@@ -2905,26 +2903,6 @@ static void test_DeviceCapabilities(void)
GlobalFree(prn_dlg.hDevNames);
}
-static void test_IsValidDevmodeW(void)
-{
- BOOL br;
-
- if (!pIsValidDevmodeW)
- {
- win_skip("IsValidDevmodeW not implemented.\n");
- return;
- }
-
- br = pIsValidDevmodeW(NULL, 0);
- ok(br == FALSE, "Got %d\n", br);
-
- br = pIsValidDevmodeW(NULL, 1);
- ok(br == FALSE, "Got %d\n", br);
-
- br = pIsValidDevmodeW(NULL, sizeof(DEVMODEW));
- ok(br == FALSE, "Got %d\n", br);
-}
-
static void test_OpenPrinter_defaults(void)
{
HANDLE printer;
@@ -3044,6 +3022,53 @@ todo_wine
ClosePrinter( printer );
}
+static void test_IsValidDevmodeW(void)
+{
+ static const struct
+ {
+ DWORD dmFields;
+ WORD dmSize;
+ BOOL ret;
+ } test[] =
+ {
+ { 0, FIELD_OFFSET(DEVMODEW, dmFields) + 0, FALSE },
+ { 0, FIELD_OFFSET(DEVMODEW, dmFields) + 1, FALSE },
+ { 0, FIELD_OFFSET(DEVMODEW, dmFields) + 2, FALSE },
+ { 0, FIELD_OFFSET(DEVMODEW, dmFields) + 3, FALSE },
+ { 0, FIELD_OFFSET(DEVMODEW, dmFields) + 4, TRUE },
+
+ { DM_ORIENTATION, FIELD_OFFSET(DEVMODEW, u1.s1.dmOrientation) + 0, FALSE },
+ { DM_ORIENTATION, FIELD_OFFSET(DEVMODEW, u1.s1.dmOrientation) + 1, FALSE },
+ { DM_ORIENTATION, FIELD_OFFSET(DEVMODEW, u1.s1.dmOrientation) + 2, TRUE },
+
+ { DM_NUP, FIELD_OFFSET(DEVMODEW, u2.dmNup) + 0, FALSE },
+ { DM_NUP, FIELD_OFFSET(DEVMODEW, u2.dmNup) + 1, FALSE },
+ { DM_NUP, FIELD_OFFSET(DEVMODEW, u2.dmNup) + 2, FALSE },
+ { DM_NUP, FIELD_OFFSET(DEVMODEW, u2.dmNup) + 3, FALSE },
+ { DM_NUP, FIELD_OFFSET(DEVMODEW, u2.dmNup) + 4, TRUE },
+
+ };
+ DEVMODEW dm;
+ int i;
+ BOOL ret;
+
+ ret = IsValidDevmodeW(NULL, 0);
+ ok(!ret, "got %d\n", ret);
+
+ ret = IsValidDevmodeW(NULL, sizeof(DEVMODEW));
+ ok(!ret, "got %d\n", ret);
+
+ memset(&dm, 0, sizeof(dm));
+
+ for (i = 0; i < ARRAY_SIZE(test); i++)
+ {
+ dm.dmSize = test[i].dmSize;
+ dm.dmFields = test[i].dmFields;
+ ret = IsValidDevmodeW(&dm, dm.dmSize);
+ ok(ret == test[i].ret, "%d: got %d\n", i, ret);
+ }
+}
+
START_TEST(info)
{
hwinspool = LoadLibraryA("winspool.drv");
@@ -3055,7 +3080,6 @@ START_TEST(info)
pGetPrinterW = (void *) GetProcAddress(hwinspool, "GetPrinterW");
pSetDefaultPrinterA = (void *) GetProcAddress(hwinspool,
"SetDefaultPrinterA");
pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
- pIsValidDevmodeW = (void *) GetProcAddress(hwinspool, "IsValidDevmodeW");
on_win9x = check_win9x();
if (on_win9x)