Detlef Riekenberg : winspool/tests: Add tests for ClosePrinter.

Alexandre Julliard julliard at winehq.org
Wed Nov 2 15:04:07 CDT 2016


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

Author: Detlef Riekenberg <wine.dev at web.de>
Date:   Tue Nov  1 23:21:42 2016 +0100

winspool/tests: Add tests for ClosePrinter.

Signed-off-by: Detlef Riekenberg <wine.dev at web.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winspool.drv/tests/info.c | 49 ++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index ffa31ed..f6527c5 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -672,6 +672,50 @@ static void test_ConfigurePort(void)
 
 /* ########################### */
 
+static void test_ClosePrinter(void)
+{
+    HANDLE printer = 0;
+    BOOL res;
+
+    /* NULL is handled */
+    SetLastError(0xdeadbeef);
+    res = ClosePrinter(NULL);
+    ok(!res && (GetLastError() == ERROR_INVALID_HANDLE),
+        "got %d with %d (expected FALSE with ERROR_INVALID_HANDLE)\n",
+        res, GetLastError());
+
+    /* A random value as HANDLE is handled */
+    SetLastError(0xdeadbeef);
+    res = ClosePrinter( (void *) -1);
+    if (is_spooler_deactivated(res, GetLastError())) return;
+    ok(!res && (GetLastError() == ERROR_INVALID_HANDLE),
+        "got %d with %d (expected FALSE with ERROR_INVALID_HANDLE)\n",
+         res, GetLastError());
+
+
+    /* Normal use (The Spooler service is needed) */
+    SetLastError(0xdeadbeef);
+    res = OpenPrinterA(default_printer, &printer, NULL);
+    if (is_spooler_deactivated(res, GetLastError())) return;
+    if (res)
+    {
+        SetLastError(0xdeadbeef);
+        res = ClosePrinter(printer);
+        ok(res, "got %d with %d (expected TRUE)\n", res, GetLastError());
+
+
+        /* double free is handled */
+        SetLastError(0xdeadbeef);
+        res = ClosePrinter(printer);
+        ok(!res && (GetLastError() == ERROR_INVALID_HANDLE),
+            "got %d with %d (expected FALSE with ERROR_INVALID_HANDLE)\n",
+            res, GetLastError());
+
+    }
+}
+
+/* ########################### */
+
 static void test_DeleteMonitor(void)
 {
     MONITOR_INFO_2A         mi2a;
@@ -3023,6 +3067,7 @@ START_TEST(info)
     test_AddPort();
     test_AddPortEx();
     test_ConfigurePort();
+    test_ClosePrinter();
     test_DeleteMonitor();
     test_DeletePort();
     test_DeviceCapabilities();
@@ -3037,7 +3082,9 @@ START_TEST(info)
     test_GetDefaultPrinter();
     test_GetPrinterDriverDirectory();
     test_GetPrintProcessorDirectory();
+    test_IsValidDevmodeW();
     test_OpenPrinter();
+    test_OpenPrinter_defaults();
     test_GetPrinter();
     test_GetPrinterData();
     test_GetPrinterDataEx();
@@ -3045,8 +3092,6 @@ START_TEST(info)
     test_SetDefaultPrinter();
     test_XcvDataW_MonitorUI();
     test_XcvDataW_PortIsValid();
-    test_IsValidDevmodeW();
-    test_OpenPrinter_defaults();
 
     /* Cleanup our temporary file */
     DeleteFileA(tempfileA);




More information about the wine-cvs mailing list