Jeremy White : winspool: Add a test showing Windows behavior wrt size and GetPrinterDriverA.

Alexandre Julliard julliard at winehq.org
Tue Nov 24 12:40:24 CST 2009


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

Author: Jeremy White <jwhite at codeweavers.com>
Date:   Tue Nov 24 07:31:21 2009 -0600

winspool: Add a test showing Windows behavior wrt size and GetPrinterDriverA.

This behavior was discovered by Huw Davies.

---

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

diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index c6c0066..2fb09f3 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -70,6 +70,7 @@ static BOOL  (WINAPI * pGetDefaultPrinterA)(LPSTR, LPDWORD);
 static BOOL  (WINAPI * pSetDefaultPrinterA)(LPCSTR);
 static DWORD (WINAPI * pXcvDataW)(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
 static BOOL  (WINAPI * pAddPortExA)(LPSTR, DWORD, LPBYTE, LPSTR);
+static BOOL  (WINAPI * pGetPrinterDriverW)(HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD);
 
 
 /* ################################ */
@@ -2260,6 +2261,15 @@ static void test_GetPrinterDriver(void)
             continue;
         }
 
+        /* GetPrinterDriverA returns the same number of bytes as GetPrinterDriverW */
+        if (! ret && pGetPrinterDriverW)
+        {
+            DWORD double_needed;
+            ret = pGetPrinterDriverW(hprn, NULL, level, NULL, 0, &double_needed);
+            todo_wine
+            ok(double_needed == needed, "GetPrinterDriverA returned different size %d than GetPrinterDriverW (%d)\n", needed, double_needed);
+        }
+
         buf = HeapAlloc(GetProcessHeap(), 0, needed);
 
         SetLastError(0xdeadbeef);
@@ -2536,6 +2546,7 @@ START_TEST(info)
     hwinspool = GetModuleHandleA("winspool.drv");
     pGetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "GetDefaultPrinterA");
     pSetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "SetDefaultPrinterA");
+    pGetPrinterDriverW = (void *) GetProcAddress(hwinspool, "GetPrinterDriverW");
     pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
     pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA");
 




More information about the wine-cvs mailing list