The branch, master has been updated
       via  0ae4cc8... testprogs: remove unused test_EachDriver from spoolss 
test.
       via  3c1b517... testprogs: add EnumPrinterKey test to spoolss test.
       via  13dad38... s4-smbtorture: fix GetAliasMembership test in RPC-SAMR.
      from  a744dbc... s4-smbtorture: add RPC-SAMR-PASSWORDS-BADPWDCOUNT 
torture test.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0ae4cc839d435bb974b456c9c0f91bf545e181f2
Author: Günther Deschner <[email protected]>
Date:   Mon Jan 11 15:40:37 2010 +0100

    testprogs: remove unused test_EachDriver from spoolss test.
    
    Guenther

commit 3c1b51795dcf6b6e85701a49ea9d862b9ae610bd
Author: Günther Deschner <[email protected]>
Date:   Mon Jan 11 15:40:16 2010 +0100

    testprogs: add EnumPrinterKey test to spoolss test.
    
    Guenther

commit 13dad3893085dfe2fc01f88b3bb46a0645ab22fb
Author: Günther Deschner <[email protected]>
Date:   Mon Jan 11 12:40:01 2010 +0100

    s4-smbtorture: fix GetAliasMembership test in RPC-SAMR.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source4/torture/rpc/samr.c               |   10 +++--
 testprogs/win32/spoolss/error.c          |    4 ++
 testprogs/win32/spoolss/printlib.c       |   14 ++++++
 testprogs/win32/spoolss/printlib_proto.h |    1 +
 testprogs/win32/spoolss/spoolss.c        |   67 +++++++++++++++++++-----------
 5 files changed, 68 insertions(+), 28 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index 20d4803..8b466e8 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -2639,11 +2639,13 @@ static bool test_GetAliasMembership(struct dcerpc_pipe 
*p,
        /* only true for w2k8 it seems
         * win7, xp, w2k3 will return a 0 length array pointer */
 
-       torture_assert(tctx, (rids.ids && !rids.count),
-               "samr_GetAliasMembership protocol misbehaviour");
+       if (rids.ids && (rids.count == 0)) {
+               torture_fail(tctx, "samr_GetAliasMembership returned 0 count 
and a rids array");
+       }
 #endif
-       torture_assert(tctx, (!rids.ids && rids.count),
-               "samr_GetAliasMembership protocol misbehaviour");
+       if (!rids.ids && rids.count) {
+               torture_fail(tctx, "samr_GetAliasMembership returned non-0 
count but no rids");
+       }
 
        return true;
 }
diff --git a/testprogs/win32/spoolss/error.c b/testprogs/win32/spoolss/error.c
index ba15c1e..6296f07 100644
--- a/testprogs/win32/spoolss/error.c
+++ b/testprogs/win32/spoolss/error.c
@@ -31,6 +31,8 @@ const char *errstr(DWORD error)
                return "ERROR_ACCESS_DENIED";
        case ERROR_INVALID_PARAMETER:
                return "ERROR_INVALID_PARAMETER";
+       case ERROR_INVALID_HANDLE:
+               return "ERROR_INVALID_HANDLE";
        case ERROR_CALL_NOT_IMPLEMENTED:
                return "ERROR_CALL_NOT_IMPLEMENTED";
        case ERROR_INSUFFICIENT_BUFFER:
@@ -109,6 +111,8 @@ const char *errstr(DWORD error)
 #endif
        case ERROR_CANCELLED:
                return "ERROR_CANCELLED";
+       case RPC_S_SERVER_UNAVAILABLE:
+               return "RPC_S_SERVER_UNAVAILABLE";
        default:
                break;
        }
diff --git a/testprogs/win32/spoolss/printlib.c 
b/testprogs/win32/spoolss/printlib.c
index c40ca6c..9fc9d04 100644
--- a/testprogs/win32/spoolss/printlib.c
+++ b/testprogs/win32/spoolss/printlib.c
@@ -606,3 +606,17 @@ void print_printer_enum_values(PRINTER_ENUM_VALUES *info)
 
        return;
 }
+
+void print_printer_keys(LPSTR buffer)
+{
+       LPSTR p = NULL;
+
+       p = buffer;
+
+       while (p && *p) {
+               printf("%s\n", p);
+               for (; *p; p = CharNext(p)) {
+                       p = CharNext(p);
+               }
+       }
+}
diff --git a/testprogs/win32/spoolss/printlib_proto.h 
b/testprogs/win32/spoolss/printlib_proto.h
index fd6db22..d408523 100644
--- a/testprogs/win32/spoolss/printlib_proto.h
+++ b/testprogs/win32/spoolss/printlib_proto.h
@@ -39,6 +39,7 @@ void print_driver_info_4 (PDRIVER_INFO_4 info);
 void print_driver_info_6 (PDRIVER_INFO_6 info);
 void print_doc_info_1 (PDOC_INFO_1 info);
 void print_printer_enum_values (PRINTER_ENUM_VALUES *info);
+void print_printer_keys(LPSTR buffer);
 #undef _PRINTF_ATTRIBUTE
 #define _PRINTF_ATTRIBUTE(a1, a2)
 
diff --git a/testprogs/win32/spoolss/spoolss.c 
b/testprogs/win32/spoolss/spoolss.c
index 5c77413..d68ca89 100644
--- a/testprogs/win32/spoolss/spoolss.c
+++ b/testprogs/win32/spoolss/spoolss.c
@@ -403,6 +403,42 @@ static BOOL test_EnumPrintProcessorDatatypes(struct 
torture_context *tctx,
 /****************************************************************************
 ****************************************************************************/
 
+static BOOL test_EnumPrinterKey(struct torture_context *tctx,
+                               LPSTR servername,
+                               HANDLE handle,
+                               LPCSTR key)
+{
+       LPSTR buffer = NULL;
+       DWORD needed = 0;
+       DWORD err = 0;
+       char tmp[1024];
+
+       torture_comment(tctx, "Testing EnumPrinterKey(%s)", key);
+
+       err = EnumPrinterKey(handle, key, NULL, 0, &needed);
+       if (err == ERROR_MORE_DATA) {
+               buffer = (LPTSTR)malloc(needed);
+               torture_assert(tctx, buffer, "malloc failed");
+               err = EnumPrinterKey(handle, key, buffer, needed, &needed);
+       }
+       if (err) {
+               sprintf(tmp, "EnumPrinterKey(%s) failed on [%s] (buffer size = 
%d), error: %s\n",
+                       key, servername, needed, errstr(err));
+               torture_fail(tctx, tmp);
+       }
+
+       if (tctx->print) {
+               print_printer_keys(buffer);
+       }
+
+       free(buffer);
+
+       return TRUE;
+}
+
+/****************************************************************************
+****************************************************************************/
+
 static BOOL test_GetPrinter(struct torture_context *tctx,
                            LPSTR printername,
                            HANDLE handle)
@@ -561,6 +597,8 @@ static BOOL test_OnePrinter(struct torture_context *tctx,
        ret &= test_GetPrinterDriver(tctx, printername, architecture, handle);
        ret &= test_EnumForms(tctx, printername, handle);
        ret &= test_EnumJobs(tctx, printername, handle);
+       ret &= test_EnumPrinterKey(tctx, printername, handle, "");
+       ret &= test_EnumPrinterKey(tctx, printername, handle, 
"PrinterDriverData");
        ret &= test_ClosePrinter(tctx, handle);
 
        return ret;
@@ -569,25 +607,6 @@ static BOOL test_OnePrinter(struct torture_context *tctx,
 /****************************************************************************
 ****************************************************************************/
 
-static BOOL test_OneDriver(struct torture_context *tctx,
-                          LPSTR printername,
-                          LPSTR drivername)
-{
-       return TRUE;
-}
-
-/****************************************************************************
-****************************************************************************/
-
-static BOOL test_EachDriver(struct torture_context *tctx,
-                           LPSTR servername)
-{
-       return TRUE;
-}
-
-/****************************************************************************
-****************************************************************************/
-
 static BOOL test_EachPrinter(struct torture_context *tctx,
                             LPSTR servername,
                             LPSTR architecture)
@@ -731,7 +750,7 @@ int main(int argc, char *argv[])
        BOOL ret = FALSE;
        LPSTR servername;
        LPSTR architecture = "Windows NT x86";
-       HANDLE handle;
+       HANDLE server_handle;
        struct torture_context *tctx;
 
        if (argc < 2) {
@@ -756,9 +775,10 @@ int main(int argc, char *argv[])
 
        ret &= test_EnumPrinters(tctx, servername);
        ret &= test_EnumDrivers(tctx, servername, architecture);
-       ret &= test_OpenPrinter(tctx, servername, &handle);
-       ret &= test_EnumForms(tctx, servername, handle);
-       ret &= test_ClosePrinter(tctx, handle);
+       ret &= test_OpenPrinter(tctx, servername, &server_handle);
+/*     ret &= test_EnumPrinterKey(tctx, servername, server_handle, ""); */
+       ret &= test_EnumForms(tctx, servername, server_handle);
+       ret &= test_ClosePrinter(tctx, server_handle);
        ret &= test_EnumPorts(tctx, servername);
        ret &= test_EnumMonitors(tctx, servername);
        ret &= test_EnumPrintProcessors(tctx, servername, architecture);
@@ -766,7 +786,6 @@ int main(int argc, char *argv[])
        ret &= test_GetPrintProcessorDirectory(tctx, servername, architecture);
        ret &= test_GetPrinterDriverDirectory(tctx, servername, architecture);
        ret &= test_EachPrinter(tctx, servername, architecture);
-       ret &= test_EachDriver(tctx, servername);
 
        if (!ret) {
                if (tctx->last_reason) {


-- 
Samba Shared Repository

Reply via email to