[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