Jeremy White : winspool: Add a test to show size required for EnumPrinterDriversA is the same as W.

Alexandre Julliard julliard at winehq.org
Tue Dec 1 09:19:42 CST 2009


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

Author: Jeremy White <jwhite at winehq.org>
Date:   Mon Nov 30 17:05:01 2009 -0600

winspool: Add a test to show size required for EnumPrinterDriversA is the same as W.

---

 dlls/winspool.drv/tests/info.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index a39e935..1e9f567 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -72,6 +72,7 @@ static DWORD (WINAPI * pXcvDataW)(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, P
 static BOOL  (WINAPI * pAddPortExA)(LPSTR, DWORD, LPBYTE, LPSTR);
 static BOOL  (WINAPI * pGetPrinterDriverW)(HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD);
 static BOOL  (WINAPI * pGetPrinterW)(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD);
+static BOOL  (WINAPI * pEnumPrinterDriversW)(LPWSTR, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD);
 
 
 /* ################################ */
@@ -1154,6 +1155,16 @@ static void test_EnumPrinterDrivers(void)
             continue;
         }
 
+        /* EnumPrinterDriversA returns the same number of bytes as EnumPrinterDriversW */
+        if (pEnumPrinterDriversW)
+        {
+            DWORD double_needed;
+            DWORD double_returned;
+            pEnumPrinterDriversW(NULL, NULL, level, NULL, 0, &double_needed, &double_returned);
+            todo_wine
+            ok(double_needed == cbBuf, "level %d: EnumPrinterDriversA returned different size %d than EnumPrinterDriversW (%d)\n", level, cbBuf, double_needed);
+        }
+
         buffer = HeapAlloc(GetProcessHeap(), 0, cbBuf + 4);
         if (buffer == NULL) continue;
 
@@ -2618,6 +2629,7 @@ START_TEST(info)
     pGetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "GetDefaultPrinterA");
     pSetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "SetDefaultPrinterA");
     pGetPrinterDriverW = (void *) GetProcAddress(hwinspool, "GetPrinterDriverW");
+    pEnumPrinterDriversW = (void *) GetProcAddress(hwinspool, "EnumPrinterDriversW");
     pGetPrinterW = (void *) GetProcAddress(hwinspool, "GetPrinterW");
     pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
     pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA");




More information about the wine-cvs mailing list