testprogs: rename test_PrinterData to test_PrinterData_Server.
[ira/wip.git] / testprogs / win32 / spoolss / spoolss.c
index 38eb7ed7d74fd77919e14aa46666cc57c14f5ff2..0edb5337cf4691cc91ca252f6c3eb5e018d20489 100644 (file)
@@ -1243,9 +1243,83 @@ static BOOL test_GetPrinterDataEx(struct torture_context *tctx,
 /****************************************************************************
 ****************************************************************************/
 
-static BOOL test_PrinterData(struct torture_context *tctx,
-                            LPSTR servername,
-                            HANDLE handle)
+static BOOL test_DeletePrinterDataEx(struct torture_context *tctx,
+                                    LPSTR servername,
+                                    LPSTR keyname,
+                                    LPSTR valuename,
+                                    HANDLE handle)
+{
+       DWORD err = 0;
+       char tmp[1024];
+
+       torture_comment(tctx, "Testing DeletePrinterDataEx(%s - %s)", keyname, valuename);
+
+       err = DeletePrinterDataEx(handle, keyname, valuename);
+       if (err) {
+               sprintf(tmp, "DeletePrinterDataEx(%s - %s) failed on [%s], error: %s\n",
+                       keyname, valuename, servername, errstr(err));
+               torture_fail(tctx, tmp);
+       }
+
+       return TRUE;
+}
+
+/****************************************************************************
+****************************************************************************/
+
+static BOOL test_DeletePrinterKey(struct torture_context *tctx,
+                                 LPSTR servername,
+                                 LPSTR keyname,
+                                 HANDLE handle)
+{
+       DWORD err = 0;
+       char tmp[1024];
+
+       torture_comment(tctx, "Testing DeletePrinterKey(%s)", keyname);
+
+       err = DeletePrinterKey(handle, keyname);
+       if (err) {
+               sprintf(tmp, "DeletePrinterKey(%s) failed on [%s], error: %s\n",
+                       keyname, servername, errstr(err));
+               torture_fail(tctx, tmp);
+       }
+
+       return TRUE;
+}
+
+/****************************************************************************
+****************************************************************************/
+
+static BOOL test_SetPrinterDataEx(struct torture_context *tctx,
+                                 LPSTR servername,
+                                 LPSTR keyname,
+                                 LPSTR valuename,
+                                 HANDLE handle,
+                                 DWORD type,
+                                 LPBYTE buffer,
+                                 DWORD offered)
+{
+       DWORD err = 0;
+       char tmp[1024];
+
+       torture_comment(tctx, "Testing SetPrinterDataEx(%s - %s)", keyname, valuename);
+
+       err = SetPrinterDataEx(handle, keyname, valuename, type, buffer, offered);
+       if (err) {
+               sprintf(tmp, "SetPrinterDataEx(%s) failed on [%s] (buffer size = %d), error: %s\n",
+                       valuename, servername, offered, errstr(err));
+               torture_fail(tctx, tmp);
+       }
+
+       return TRUE;
+}
+
+/****************************************************************************
+****************************************************************************/
+
+static BOOL test_PrinterData_Server(struct torture_context *tctx,
+                                   LPSTR servername,
+                                   HANDLE handle)
 {
        BOOL ret = TRUE;
        DWORD i;
@@ -1339,11 +1413,20 @@ int main(int argc, char *argv[])
        defaults_use.pDevMode = NULL;
        defaults_use.DesiredAccess = PRINTER_ACCESS_USE;
 
+       if ((servername[0] == '\\') && (servername[1] == '\\')) {
+               LPSTR p = servername+2;
+               LPSTR p2;
+               if ((p2 = strchr(p, '\\')) != NULL) {
+                       ret = test_OnePrinter(tctx, servername, architecture, NULL);
+                       goto done;
+               }
+       }
+
        ret &= test_EnumPrinters(tctx, servername);
        ret &= test_EnumDrivers(tctx, servername, architecture);
        ret &= test_OpenPrinter(tctx, servername, NULL, &server_handle);
 /*     ret &= test_EnumPrinterKey(tctx, servername, server_handle, ""); */
-       ret &= test_PrinterData(tctx, servername, server_handle);
+       ret &= test_PrinterData_Server(tctx, servername, server_handle);
        ret &= test_EnumForms(tctx, servername, server_handle);
        ret &= test_ClosePrinter(tctx, server_handle);
        ret &= test_EnumPorts(tctx, servername);
@@ -1354,6 +1437,7 @@ int main(int argc, char *argv[])
        ret &= test_GetPrinterDriverDirectory(tctx, servername, architecture);
        ret &= test_EachPrinter(tctx, servername, architecture, NULL);
 
+ done:
        if (!ret) {
                if (tctx->last_reason) {
                        fprintf(stderr, "failed: %s\n", tctx->last_reason);