Detlef Riekenberg : winspool/tests: Fix test for GetPrinterDriver.

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 5 15:24:08 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 4bb446f8a85d01e0478ef127c8d73106f33df6ee
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=4bb446f8a85d01e0478ef127c8d73106f33df6ee

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Tue May  2 05:58:36 2006 +0200

winspool/tests: Fix test for GetPrinterDriver.

---

 dlls/winspool/tests/info.c |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/dlls/winspool/tests/info.c b/dlls/winspool/tests/info.c
index 1ca00b6..b6b15a1 100644
--- a/dlls/winspool/tests/info.c
+++ b/dlls/winspool/tests/info.c
@@ -1029,13 +1029,21 @@ static void test_GetPrinterDriver(void)
         ok(!ret, "level %d: GetPrinterDriver should fail\n", level);
         if (level >= 1 && level <= 6)
         {
+            /* Not all levels are supported on all Windows-Versions */
+            if(GetLastError() == ERROR_INVALID_LEVEL) continue;
             ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "wrong error %ld\n", GetLastError());
             ok(needed > 0,"not expected needed buffer size %ld\n", needed);
         }
         else
         {
-            ok(GetLastError() == ERROR_INVALID_LEVEL, "wrong error %ld\n", GetLastError());
-            ok(needed == (DWORD)-1,"not expected needed buffer size %ld\n", needed);
+            /* ERROR_OUTOFMEMORY found on win9x */
+            ok( ((GetLastError() == ERROR_INVALID_LEVEL) ||
+                 (GetLastError() == ERROR_OUTOFMEMORY)),
+                "%d: returned %d with %ld (expected '0' with: " \
+                "ERROR_INVALID_LEVEL or ERROR_OUTOFMEMORY)\n",
+                level, ret, GetLastError());
+            /* needed is modified in win9x. The modified Value depends on the
+               default Printer. testing for "needed == (DWORD)-1" will fail */
             continue;
         }
 
@@ -1052,7 +1060,10 @@ static void test_GetPrinterDriver(void)
             DRIVER_INFO_2 *di_2 = (DRIVER_INFO_2 *)buf;
             DWORD calculated = sizeof(*di_2);
 
-            ok(di_2->cVersion >= 0 && di_2->cVersion <= 3, "di_2->cVersion = %ld\n", di_2->cVersion);
+            /* MSDN is wrong: The Drivers on the win9x-CD's have cVersion=0x0400
+               NT351: 1, NT4.0+w2k(Kernelmode): 2, w2k and above(Usermode): 3  */
+            ok((di_2->cVersion >= 0 && di_2->cVersion <= 3) ||
+                (di_2->cVersion == 0x0400), "di_2->cVersion = %ld\n", di_2->cVersion);
             ok(di_2->pName != NULL, "not expected NULL ptr\n");
             ok(di_2->pEnvironment != NULL, "not expected NULL ptr\n");
             ok(di_2->pDriverPath != NULL, "not expected NULL ptr\n");




More information about the wine-cvs mailing list