[winspool/tests 2/2] Don't treat having no printers as a failure

Paul Vriens paul.vriens.wine at gmail.com
Tue Dec 12 03:22:49 CST 2006


Hi,

several of my Vmware boxes have no printers installed. This shouldn't be
treated as a failure.

Changelog
  Don't treat having no printers as a failure

Cheers,

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

diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index 786ea3f..dec988e 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -1637,15 +1637,37 @@ static void test_EnumPrinters(void)
     DWORD ret;
 
     SetLastError(0xdeadbeef);
+    neededA = -1;
     ret = EnumPrintersA(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &neededA, &num);
-    ok(ret == 0, "ret %d\n", ret);
-    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "gle %d\n", GetLastError());
+    if (!ret)
+    {
+        /* We have 1 or more printers */
+        ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "gle %d\n", GetLastError());
+        ok(neededA > 0, "Expected neededA to show the number of needed bytes\n");
+    }
+    else
+    {
+        /* We don't have any printers defined */
+        ok(GetLastError() == S_OK, "gle %d\n", GetLastError());
+        ok(neededA == 0, "Expected neededA to be zero\n");
+    }
     ok(num == 0, "num %d\n", num);
 
     SetLastError(0xdeadbeef);
+    neededW = -1;
     ret = EnumPrintersW(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &neededW, &num);
-    ok(ret == 0, "ret %d\n", ret);
-    ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "gle %d\n", GetLastError());
+    if (!ret)
+    {
+        /* We have 1 or more printers */
+        ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "gle %d\n", GetLastError());
+        ok(neededW > 0, "Expected neededW to show the number of needed bytes\n");
+    }
+    else
+    {
+        /* We don't have any printers defined */
+        ok(GetLastError() == S_OK, "gle %d\n", GetLastError());
+        ok(neededW == 0, "Expected neededW to be zero\n");
+    }
     ok(num == 0, "num %d\n", num);
 
     /* Outlook2003 relies on the buffer size returned by EnumPrintersA being big enough
-- 
1.4.4.2




More information about the wine-patches mailing list