[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Tue Jan 12 04:13:16 MST 2010
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 <gd at samba.org>
Date: Mon Jan 11 15:40:37 2010 +0100
testprogs: remove unused test_EachDriver from spoolss test.
Guenther
commit 3c1b51795dcf6b6e85701a49ea9d862b9ae610bd
Author: Günther Deschner <gd at samba.org>
Date: Mon Jan 11 15:40:16 2010 +0100
testprogs: add EnumPrinterKey test to spoolss test.
Guenther
commit 13dad3893085dfe2fc01f88b3bb46a0645ab22fb
Author: Günther Deschner <gd at samba.org>
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
More information about the samba-cvs
mailing list