Detlef Riekenberg : winspool/tests: Handle the Windows bug in GetPrinterDataEx.

Alexandre Julliard julliard at winehq.org
Thu Jun 17 11:17:14 CDT 2010


Module: wine
Branch: master
Commit: 2cbb9a1ee5bca8c0e83d769391469c66aaf7b351
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2cbb9a1ee5bca8c0e83d769391469c66aaf7b351

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Thu Jun 17 00:38:24 2010 +0200

winspool/tests: Handle the Windows bug in GetPrinterDataEx.

---

 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..b81bde4 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));
 




More information about the wine-cvs mailing list