[PATCH] winspool/tests: Handle the Windows bug in GetPrinterDataEx
Detlef Riekenberg
wine.dev at web.de
Wed Jun 16 17:38:24 CDT 2010
The current LastError value is returned as result from GetPrinterDataEx
in Windows 6.0 (vista and w2k8)
--
By by ... Detlef
---
dlls/winspool.drv/tests/info.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index b86d367..346191c 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -2461,8 +2461,19 @@ static void test_GetPrinterDataEx(void)
needed = 0xdeadbeef;
SetLastError(0xdeadbeef);
+ /* vista and w2k8 have a bug in GetPrinterDataEx:
+ the current LastError value is returned as result */
res = pGetPrinterDataExA(hprn, NULL, defaultspooldirectory, NULL, NULL, 0, &needed);
- ok( (res == ERROR_MORE_DATA) && ((needed == len) || (needed == (len * sizeof(WCHAR)))),
+ ok( ((res == ERROR_MORE_DATA) || broken(res == 0xdeadbeef)) &&
+ ((needed == len) || (needed == (len * sizeof(WCHAR)))),
+ "got %d, needed: %d (expected ERROR_MORE_DATA and %d or %d)\n",
+ res, needed, len, len * sizeof(WCHAR));
+
+ needed = 0xdeadbeef;
+ SetLastError(0xdeaddead);
+ res = pGetPrinterDataExA(hprn, NULL, defaultspooldirectory, NULL, NULL, 0, &needed);
+ ok( ((res == ERROR_MORE_DATA) || broken(res == 0xdeaddead)) &&
+ ((needed == len) || (needed == (len * sizeof(WCHAR)))),
"got %d, needed: %d (expected ERROR_MORE_DATA and %d or %d)\n",
res, needed, len, len * sizeof(WCHAR));
--
1.7.0.4
More information about the wine-patches
mailing list