[PATCH 2/2] Fix some test failures on Win9x/WinMe

Paul Vriens Paul.Vriens.Wine at gmail.com
Sat Feb 6 08:37:24 CST 2010


---
 dlls/winspool.drv/tests/info.c |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index f3b2d78..25e808d 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -115,6 +115,22 @@ static DWORD access_denied_reported = 0;
 
 /* ################################ */
 
+static BOOL on_win9x = FALSE;
+
+static BOOL check_win9x(void)
+{
+    if (pGetPrinterW) 
+    {
+        SetLastError(0xdeadbeef);
+        pGetPrinterW(NULL, 0, NULL, 0, NULL);
+        return (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED);
+    }
+    else
+    {
+        return TRUE;
+    }
+}
+
 static void find_default_printer(VOID)
 {
     static  char    buffer[DEFAULT_PRINTER_SIZE];
@@ -1156,7 +1172,7 @@ static void test_EnumPrinterDrivers(void)
         }
 
         /* EnumPrinterDriversA returns the same number of bytes as EnumPrinterDriversW */
-        if (pEnumPrinterDriversW)
+        if (!on_win9x && pEnumPrinterDriversW)
         {
             DWORD double_needed;
             DWORD double_returned;
@@ -2266,7 +2282,7 @@ static void test_GetPrinter(void)
         ok(needed > 0,"not expected needed buffer size %d\n", needed);
 
         /* GetPrinterA returns the same number of bytes as GetPrinterW */
-        if (! ret && pGetPrinterW && level != 6 && level != 7)
+        if (!on_win9x && !ret && pGetPrinterW && level != 6 && level != 7)
         {
             DWORD double_needed;
             ret = pGetPrinterW(hprn, level, NULL, 0, &double_needed);
@@ -2351,7 +2367,7 @@ static void test_GetPrinterDriver(void)
         }
 
         /* GetPrinterDriverA returns the same number of bytes as GetPrinterDriverW */
-        if (! ret && pGetPrinterDriverW)
+        if (!on_win9x && !ret && pGetPrinterDriverW)
         {
             DWORD double_needed;
             ret = pGetPrinterDriverW(hprn, NULL, level, NULL, 0, &double_needed);
@@ -2668,6 +2684,10 @@ START_TEST(info)
     pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
     pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA");
 
+    on_win9x = check_win9x();
+    if (on_win9x)
+        win_skip("Several W-functions are not available on Win9x/WinMe\n");
+
     find_default_printer();
     find_local_server();
     find_tempfile();
-- 
1.6.2.5


--------------030403050708060705030500--



More information about the wine-patches mailing list