[SCM] Samba Shared Repository - branch v3-6-test updated
Günther Deschner
gd at samba.org
Tue Feb 8 11:19:54 MST 2011
The branch, v3-6-test has been updated
via 5624aa8 s3-spoolss: Dont wipe out all drivers when only one should be deleted.
via abd4a39 s4-smbtorture: add torture test to check proper add and delete driver operations.
via 1065ecc s3-selftest: mark the driver timestamp test as knownfail for now.
via 4d9492e s4-smbtorture: also run the driver timestamp spoolss test against samba.
from 519a85b s4-waf: split out wscript_build for ndrdump binary.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test
- Log -----------------------------------------------------------------
commit 5624aa8eafa9220d93db4bd47e6a383e9bca47ef
Author: Günther Deschner <gd at samba.org>
Date: Tue Feb 8 17:19:23 2011 +0100
s3-spoolss: Dont wipe out all drivers when only one should be deleted.
Great catch from Bjoern Baumbach <bb at sernet.de> !
Andreas, Simo, please check.
We now have a torture test (rpc.spoolss.driver.driver.multiple_drivers) for this.
Guenther
Autobuild-User: Günther Deschner <gd at samba.org>
Autobuild-Date: Tue Feb 8 18:11:48 CET 2011 on sn-devel-104
(cherry picked from commit 8b64d0607bc3b5e3182d8a879a7fa382dbdf0fc7)
commit abd4a396ca25433dfcbbffe76911baea065a706e
Author: Günther Deschner <gd at samba.org>
Date: Tue Feb 8 17:16:51 2011 +0100
s4-smbtorture: add torture test to check proper add and delete driver operations.
Thanks to Bjoern Baumbach <bb at sernet.de> for pushing us to test and verify this.
Guenther
(cherry picked from commit 9e6d61fb8571683ddf02a7796e569ee8e4da907e)
commit 1065ecca34e1aa0ce9807867961a93be67359d69
Author: Günther Deschner <gd at samba.org>
Date: Tue Feb 8 15:16:44 2011 +0100
s3-selftest: mark the driver timestamp test as knownfail for now.
Guenther
(cherry picked from commit 541bf8068d5f9236ba63630f09cbc3cf02a8882f)
commit 4d9492ed6b965b912d7f31d5664f373306f0f722
Author: Günther Deschner <gd at samba.org>
Date: Tue Feb 8 15:16:20 2011 +0100
s4-smbtorture: also run the driver timestamp spoolss test against samba.
Guenther
(cherry picked from commit 7d107cda8936edfe3e0ce916600cc3cea91cd490)
-----------------------------------------------------------------------
Summary of changes:
source3/rpc_server/srv_spoolss_util.c | 5 +-
source3/selftest/knownfail | 1 +
source4/torture/rpc/spoolss.c | 81 +++++++++++++++++++++++++++++++--
3 files changed, 81 insertions(+), 6 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/rpc_server/srv_spoolss_util.c b/source3/rpc_server/srv_spoolss_util.c
index 5640711..dc861f8 100644
--- a/source3/rpc_server/srv_spoolss_util.c
+++ b/source3/rpc_server/srv_spoolss_util.c
@@ -4126,9 +4126,10 @@ WERROR winreg_del_driver(TALLOC_CTX *mem_ctx,
}
key_name = talloc_asprintf(tmp_ctx,
- "%s\\Environments\\%s\\Drivers\\Version-%u",
+ "%s\\Environments\\%s\\Drivers\\Version-%u\\%s",
TOP_LEVEL_CONTROL_KEY,
- info8->architecture, version);
+ info8->architecture, version,
+ info8->driver_name);
if (key_name == NULL) {
result = WERR_NOMEM;
goto done;
diff --git a/source3/selftest/knownfail b/source3/selftest/knownfail
index fde9b76..661ec50 100644
--- a/source3/selftest/knownfail
+++ b/source3/selftest/knownfail
@@ -4,3 +4,4 @@ samba3.posix_s3.rap.printing # fails sometimes on sn-devel
samba3.posix_s3.rpc.spoolss.*printserver.enum_printers_old # fails on some hosts due to timing issues ?
samba3.posix_s3.rpc.spoolss.printer.*addprinterex.print_test # another intermittent failure
samba3.posix_s3.smb2.lock.*.rw-exclusive # another intermittent failure
+.*driver.add_driver_timestamps # we only can store dates, not timestamps
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index dc9f704..6ba1c3d 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -9269,10 +9269,6 @@ static bool test_add_driver_timestamps(struct torture_context *tctx,
struct torture_driver_context *d;
struct timeval t = timeval_current();
- if (torture_setting_bool(tctx, "samba3", false)) {
- torture_skip(tctx, "skipping timestamps test against samba");
- }
-
d = talloc_zero(tctx, struct torture_driver_context);
d->info8.version = SPOOLSS_DRIVER_VERSION_200X;
@@ -9299,6 +9295,81 @@ static bool test_add_driver_timestamps(struct torture_context *tctx,
return true;
}
+static bool test_multiple_drivers(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct torture_driver_context *d;
+ struct dcerpc_binding_handle *b = p->binding_handle;
+ const char *server_name_slash = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ int i;
+ struct spoolss_AddDriverInfo8 info8;
+ uint32_t add_flags = APD_COPY_NEW_FILES;
+ uint32_t delete_flags = 0;
+
+ d = talloc_zero(tctx, struct torture_driver_context);
+
+ d->info8.version = SPOOLSS_DRIVER_VERSION_200X;
+ d->info8.driver_path = talloc_strdup(d, "pscript5.dll");
+ d->info8.data_file = talloc_strdup(d, "cups6.ppd");
+ d->info8.config_file = talloc_strdup(d, "cupsui6.dll");
+ d->local.environment = talloc_strdup(d, "Windows NT x86");
+ d->local.driver_directory = talloc_strdup(d, "/usr/share/cups/drivers/i386");
+ d->ex = true;
+
+ torture_assert(tctx,
+ fillup_printserver_info(tctx, p, d),
+ "failed to fillup printserver info");
+
+ if (!directory_exist(d->local.driver_directory)) {
+ torture_skip(tctx, "Skipping Printer Driver test as no local driver is available");
+ }
+
+ torture_assert(tctx,
+ upload_printer_driver(tctx, dcerpc_server_name(p), d),
+ "failed to upload printer driver");
+
+ info8 = d->info8;
+ info8.architecture = d->local.environment;
+
+ for (i=0; i < 3; i++) {
+ info8.driver_name = talloc_asprintf(d, "torture_test_driver_%d", i);
+
+ torture_assert(tctx,
+ test_AddPrinterDriver_args_level_3(tctx, b, server_name_slash, &info8, add_flags, true, NULL),
+ "failed to add driver");
+ }
+
+ torture_assert(tctx,
+ test_DeletePrinterDriverEx(tctx, b, server_name_slash, "torture_test_driver_0", info8.architecture, delete_flags, info8.version),
+ "failed to delete driver");
+
+ torture_assert(tctx,
+ test_EnumPrinterDrivers_findone(tctx, b, server_name_slash, info8.architecture, 3, "torture_test_driver_1", NULL),
+ "torture_test_driver_1 no longer on the server");
+
+ torture_assert(tctx,
+ test_EnumPrinterDrivers_findone(tctx, b, server_name_slash, info8.architecture, 3, "torture_test_driver_2", NULL),
+ "torture_test_driver_2 no longer on the server");
+
+ torture_assert(tctx,
+ test_DeletePrinterDriverEx(tctx, b, server_name_slash, "torture_test_driver_1", info8.architecture, delete_flags, info8.version),
+ "failed to delete driver");
+
+ torture_assert(tctx,
+ test_EnumPrinterDrivers_findone(tctx, b, server_name_slash, info8.architecture, 3, "torture_test_driver_2", NULL),
+ "torture_test_driver_2 no longer on the server");
+
+ torture_assert(tctx,
+ test_DeletePrinterDriverEx(tctx, b, server_name_slash, "torture_test_driver_2", info8.architecture, delete_flags, info8.version),
+ "failed to delete driver");
+
+ torture_assert(tctx,
+ remove_printer_driver(tctx, dcerpc_server_name(p), d),
+ "failed to remove printer driver");
+
+ return true;
+}
+
struct torture_suite *torture_rpc_spoolss_driver(TALLOC_CTX *mem_ctx)
{
struct torture_suite *suite = torture_suite_create(mem_ctx, "spoolss.driver");
@@ -9317,5 +9388,7 @@ struct torture_suite *torture_rpc_spoolss_driver(TALLOC_CTX *mem_ctx)
torture_rpc_tcase_add_test(tcase, "add_driver_timestamps", test_add_driver_timestamps);
+ torture_rpc_tcase_add_test(tcase, "multiple_drivers", test_multiple_drivers);
+
return suite;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list