From d33717b69022b425462c1763e8d73e945881da76 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 11 Oct 2012 14:39:50 +0200 Subject: [PATCH 01/62] wafsamba: Ignore some more symbols when checking for dupes. (cherry picked from commit 276460cf8afb4894fe1e980c7a75e866c14ba144) --- buildtools/wafsamba/symbols.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildtools/wafsamba/symbols.py b/buildtools/wafsamba/symbols.py index 13d84b9..daa18b9 100644 --- a/buildtools/wafsamba/symbols.py +++ b/buildtools/wafsamba/symbols.py @@ -569,7 +569,7 @@ def symbols_whyneeded(task): def report_duplicate(bld, binname, sym, libs, fail_on_error): '''report duplicated symbols''' - if sym in ['_init', '_fini']: + if sym in ['_init', '_fini', '_edata', '_end', '__bss_start']: return libnames = [] for lib in libs: -- 1.7.9.5 From ed694a6012da42bb658a99644d4fd229d08af4c4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 11 Oct 2012 17:11:44 +0200 Subject: [PATCH 02/62] samba.provision.sambadns: Use == to compare strings, not 'is'. (cherry picked from commit 2adf27a99b999a4fd0329d9fa398a9208b60e367) --- .../scripting/python/samba/provision/sambadns.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/provision/sambadns.py b/source4/scripting/python/samba/provision/sambadns.py index 576a33f..a66fde1 100644 --- a/source4/scripting/python/samba/provision/sambadns.py +++ b/source4/scripting/python/samba/provision/sambadns.py @@ -1017,7 +1017,7 @@ def setup_ad_dns(samdb, secretsdb, domainsid, names, paths, lp, logger, if not is_valid_os_level(os_level): raise Exception("Invalid os level: %r" % os_level) - if dns_backend is "NONE": + if dns_backend == "NONE": logger.info("No DNS backend set, not configuring DNS") return -- 1.7.9.5 From f42deb74c6d74fe0d38473370801ec760ca8f3a3 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 09:41:32 -0700 Subject: [PATCH 03/62] samba4-tests: Move 'samba.tests.source' up. We would like to run this as early as possible so we get a quick failure when there is trailing whitespace. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Thu Sep 27 20:26:27 CEST 2012 on sn-devel-104 (cherry picked from commit b7822a55c40c5c42356b263c3d7bc1998fb1a7d3) --- selftest/tests.py | 23 +++++++++++++++++++++++ selftest/wscript | 3 ++- source4/selftest/tests.py | 1 - 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 selftest/tests.py diff --git a/selftest/tests.py b/selftest/tests.py new file mode 100644 index 0000000..506ed73 --- /dev/null +++ b/selftest/tests.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# This script generates a list of testsuites that should be run as part of +# the Samba 4 test suite. + +# The output of this script is parsed by selftest.pl, which then decides +# which of the tests to actually run. It will, for example, skip all tests +# listed in selftest/skip or only run a subset during "make quicktest". + +# The idea is that this script outputs all of the tests of Samba 4, not +# just those that are known to pass, and list those that should be skipped +# or are known to fail in selftest/skip or selftest/knownfail. This makes it +# very easy to see what functionality is still missing in Samba 4 and makes +# it possible to run the testsuite against other servers, such as Samba 3 or +# Windows that have a different set of features. + +# The syntax for a testsuite is "-- TEST --" on a single line, followed +# by the name of the test, the environment it needs and the command to run, all +# three separated by newlines. All other lines in the output are considered +# comments. + +from selftesthelpers import * + +planpythontestsuite("none", "samba.tests.source") diff --git a/selftest/wscript b/selftest/wscript index 0277eb5..9ea2f6f 100644 --- a/selftest/wscript +++ b/selftest/wscript @@ -180,7 +180,8 @@ def cmd_testonly(opt): if not os.path.isdir(env.SELFTEST_PREFIX): os.makedirs(env.SELFTEST_PREFIX, int('755', 8)) - env.TESTLISTS = ('--testlist="${PYTHON} ${srcdir}/source3/selftest/tests.py|" ' + + env.TESTLISTS = ('--testlist="${PYTHON} ${srcdir}/selftest/tests.py|" ' + + '--testlist="${PYTHON} ${srcdir}/source3/selftest/tests.py|" ' + '--testlist="${PYTHON} ${srcdir}/source4/selftest/tests.py|"') if CONFIG_SET(opt, 'AD_DC_BUILD_IS_ENABLED'): diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 575d61b..756b28c 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -315,7 +315,6 @@ for env in ["s3member", "s4member", "dc", "chgdcpass"]: plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) planpythontestsuite("none", "samba.tests.blackbox.ndrdump") -planpythontestsuite("none", "samba.tests.source") plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) plantestsuite("samba4.blackbox.pkinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_pkinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) plantestsuite("samba4.blackbox.kinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) -- 1.7.9.5 From dbb0aa958dcc778aa330925759cab76d33575326 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Oct 2012 11:39:34 +0200 Subject: [PATCH 04/62] selftests.tests: Remove reference to Samba 4. (cherry picked from commit 1080b6c2caf1191fd896f3caf38e576a00b01982) --- selftest/tests.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/selftest/tests.py b/selftest/tests.py index 506ed73..91caba4 100644 --- a/selftest/tests.py +++ b/selftest/tests.py @@ -1,16 +1,16 @@ #!/usr/bin/python # This script generates a list of testsuites that should be run as part of -# the Samba 4 test suite. +# the Samba test suite. # The output of this script is parsed by selftest.pl, which then decides # which of the tests to actually run. It will, for example, skip all tests # listed in selftest/skip or only run a subset during "make quicktest". -# The idea is that this script outputs all of the tests of Samba 4, not +# The idea is that this script outputs all of the tests of Samba, not # just those that are known to pass, and list those that should be skipped # or are known to fail in selftest/skip or selftest/knownfail. This makes it -# very easy to see what functionality is still missing in Samba 4 and makes -# it possible to run the testsuite against other servers, such as Samba 3 or +# very easy to see what functionality is still missing in Samba and makes +# it possible to run the testsuite against other servers, such as # Windows that have a different set of features. # The syntax for a testsuite is "-- TEST --" on a single line, followed -- 1.7.9.5 From 7c42849047c36238263d4fc3304b97e16d7bc79a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Oct 2012 11:46:25 +0200 Subject: [PATCH 05/62] selftest: Move some tests to common test script. (cherry picked from commit 1aa291c331c29c2f5ee4572b660c4c2061755856) --- selftest/tests.py | 2 ++ source4/selftest/tests.py | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/selftest/tests.py b/selftest/tests.py index 91caba4..d9ad9e9 100644 --- a/selftest/tests.py +++ b/selftest/tests.py @@ -21,3 +21,5 @@ from selftesthelpers import * planpythontestsuite("none", "samba.tests.source") +planpythontestsuite("none", "selftest.tests.test_suite", extra_path=[srcdir()]) +planpythontestsuite("none", "subunit") diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 756b28c..d99c4b0 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -417,7 +417,6 @@ def planoldpythontestsuite(env, module, name=None, extra_path=[], environ={}, ex name = module plantestsuite(name, env, args) -planpythontestsuite("none", "selftest.tests.test_suite", extra_path=[srcdir()]) planpythontestsuite("none", "api", name="ldb.python", extra_path=['lib/ldb/tests/python']) planpythontestsuite("none", "samba.tests.credentials") planoldpythontestsuite("dc:local", "samba.tests.gensec", extra_args=['-U"$USERNAME%$PASSWORD"']) @@ -450,7 +449,6 @@ planpythontestsuite("dc:local", "samba.tests.samba_tool.user") planpythontestsuite("dc:local", "samba.tests.samba_tool.group") planpythontestsuite("plugin_s4_dc:local", "samba.tests.samba_tool.ntacl") -planpythontestsuite("none", "subunit") planpythontestsuite("dc:local", "samba.tests.dcerpc.rpcecho") planpythontestsuite("none", "wafsamba.tests.test_suite", extra_path=[os.path.join(samba4srcdir, "..", "buildtools"), os.path.join(samba4srcdir, "..", "buildtools", "wafadmin")]) planoldpythontestsuite("dc:local", "samba.tests.dcerpc.registry", extra_args=['-U"$USERNAME%$PASSWORD"']) -- 1.7.9.5 From 7676d005da774cbf5869dc3793bd7149d3519203 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 11 Oct 2012 17:23:13 +0200 Subject: [PATCH 06/62] samba.join: Fix multiple spaces. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Thu Oct 11 20:30:43 CEST 2012 on sn-devel-104 (cherry picked from commit 21b58b5eacb67b4dee6e7efe90bd529bbfd6ef77) --- source4/scripting/python/samba/join.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/join.py b/source4/scripting/python/samba/join.py index 7b511f8..c55c22c 100644 --- a/source4/scripting/python/samba/join.py +++ b/source4/scripting/python/samba/join.py @@ -749,7 +749,7 @@ class dc_join(object): print "Done with always replicated NC (base, config, schema)" for nc in (ctx.domaindns_zone, ctx.forestdns_zone): - if nc in ctx.nc_list: + if nc in ctx.nc_list: print "Replicating %s" % (str(nc)) repl.replicate(nc, source_dsa_invocation_id, destination_dsa_guid, rodc=ctx.RODC, -- 1.7.9.5 From bbab42d4ab80243d6935b6afa11b0d0b54e051b1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Oct 2012 11:51:37 +0200 Subject: [PATCH 07/62] selftest: Move more tests to common list script. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Fri Oct 12 02:06:42 CEST 2012 on sn-devel-104 (cherry picked from commit ff82afb1f8ad3cf950277487aff05d442d03c969) --- selftest/selftesthelpers.py | 6 ++++++ selftest/tests.py | 26 ++++++++++++++++++++++++++ source4/selftest/tests.py | 29 ----------------------------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 7fc0854..4517030 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -177,3 +177,9 @@ def planpythontestsuite(env, module, name=None, extra_path=[]): if pypath: args.insert(0, "PYTHONPATH=%s" % ":".join(["$PYTHONPATH"] + pypath)) plantestsuite_idlist(name, env, args) + + +samba4srcdir = source4dir() +bbdir = os.path.join(srcdir(), "testprogs/blackbox") +configuration = "--configfile=$SMB_CONF_PATH" + diff --git a/selftest/tests.py b/selftest/tests.py index d9ad9e9..26510a8 100644 --- a/selftest/tests.py +++ b/selftest/tests.py @@ -23,3 +23,29 @@ from selftesthelpers import * planpythontestsuite("none", "samba.tests.source") planpythontestsuite("none", "selftest.tests.test_suite", extra_path=[srcdir()]) planpythontestsuite("none", "subunit") +planpythontestsuite("none", "samba.tests.blackbox.ndrdump") +planpythontestsuite("none", "api", name="ldb.python", extra_path=['lib/ldb/tests/python']) +planpythontestsuite("none", "samba.tests.credentials") +planpythontestsuite("none", "samba.tests.registry") +planpythontestsuite("none", "samba.tests.auth") +planpythontestsuite("none", "samba.tests.getopt") +planpythontestsuite("none", "samba.tests.security") +planpythontestsuite("none", "samba.tests.dcerpc.misc") +planpythontestsuite("none", "samba.tests.param") +planpythontestsuite("none", "samba.tests.upgrade") +planpythontestsuite("none", "samba.tests.core") +planpythontestsuite("none", "samba.tests.provision") +planpythontestsuite("none", "samba.tests.samba3") +planpythontestsuite("none", "samba.tests.strings") +planpythontestsuite("none", "samba.tests.netcmd") +planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc") +planpythontestsuite("none", "samba.tests.samdb") +planpythontestsuite("none", "samba.tests.hostconfig") +planpythontestsuite("none", "samba.tests.messaging") +planpythontestsuite("none", "samba.tests.samba3sam") +planpythontestsuite("none", "wafsamba.tests.test_suite", extra_path=[os.path.join(samba4srcdir, "..", "buildtools"), os.path.join(samba4srcdir, "..", "buildtools", "wafadmin")]) +plantestsuite("samba4.blackbox.dbcheck.alpha13", "none" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck-alpha13.sh"), '$PREFIX_ABS/provision', configuration]) +planpythontestsuite("none", "samba.tests.upgradeprovision") +planpythontestsuite("none", "samba.tests.xattr") +planpythontestsuite("none", "samba.tests.ntacls") +planpythontestsuite("none", "samba.tests.policy") diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index d99c4b0..0bc7b29 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -51,8 +51,6 @@ subprocess.call([smb4torture, "-V"], stdout=sys.stderr) bbdir = os.path.join(srcdir(), "testprogs/blackbox") -configuration = "--configfile=$SMB_CONF_PATH" - torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", "--target=samba4", "--basedir=$SELFTEST_TMPDIR"] if not os.getenv("SELFTEST_VERBOSE"): torture_options.append("--option=torture:progress=no") @@ -314,7 +312,6 @@ planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal"); for env in ["s3member", "s4member", "dc", "chgdcpass"]: plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) -planpythontestsuite("none", "samba.tests.blackbox.ndrdump") plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) plantestsuite("samba4.blackbox.pkinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_pkinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) plantestsuite("samba4.blackbox.kinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) @@ -417,40 +414,19 @@ def planoldpythontestsuite(env, module, name=None, extra_path=[], environ={}, ex name = module plantestsuite(name, env, args) -planpythontestsuite("none", "api", name="ldb.python", extra_path=['lib/ldb/tests/python']) -planpythontestsuite("none", "samba.tests.credentials") planoldpythontestsuite("dc:local", "samba.tests.gensec", extra_args=['-U"$USERNAME%$PASSWORD"']) -planpythontestsuite("none", "samba.tests.registry") planoldpythontestsuite("none", "simple", extra_path=["%s/lib/tdb/python/tests" % srcdir()], name="tdb.python") -planpythontestsuite("none", "samba.tests.auth") -planpythontestsuite("none", "samba.tests.getopt") -planpythontestsuite("none", "samba.tests.security") -planpythontestsuite("none", "samba.tests.dcerpc.misc") -planpythontestsuite("none", "samba.tests.param") -planpythontestsuite("none", "samba.tests.upgrade") -planpythontestsuite("none", "samba.tests.core") -planpythontestsuite("none", "samba.tests.provision") -planpythontestsuite("none", "samba.tests.samba3") -planpythontestsuite("none", "samba.tests.strings") planpythontestsuite("dc:local", "samba.tests.dcerpc.sam") planpythontestsuite("dc:local", "samba.tests.dsdb") -planpythontestsuite("none", "samba.tests.netcmd") planpythontestsuite("dc:local", "samba.tests.dcerpc.bare") planpythontestsuite("dc:local", "samba.tests.dcerpc.unix") planpythontestsuite("dc:local", "samba.tests.dcerpc.srvsvc") -planpythontestsuite("none", "samba.tests.dcerpc.rpc_talloc") -planpythontestsuite("none", "samba.tests.samdb") -planpythontestsuite("none", "samba.tests.hostconfig") -planpythontestsuite("none", "samba.tests.messaging") -planpythontestsuite("none", "samba.tests.samba3sam") - planpythontestsuite("dc:local", "samba.tests.samba_tool.timecmd") planpythontestsuite("dc:local", "samba.tests.samba_tool.user") planpythontestsuite("dc:local", "samba.tests.samba_tool.group") planpythontestsuite("plugin_s4_dc:local", "samba.tests.samba_tool.ntacl") planpythontestsuite("dc:local", "samba.tests.dcerpc.rpcecho") -planpythontestsuite("none", "wafsamba.tests.test_suite", extra_path=[os.path.join(samba4srcdir, "..", "buildtools"), os.path.join(samba4srcdir, "..", "buildtools", "wafadmin")]) planoldpythontestsuite("dc:local", "samba.tests.dcerpc.registry", extra_args=['-U"$USERNAME%$PASSWORD"']) planoldpythontestsuite("dc", "samba.tests.dcerpc.dnsserver", extra_args=['-U"$USERNAME%$PASSWORD"']) planoldpythontestsuite("plugin_s4_dc", "samba.tests.dcerpc.dnsserver", extra_args=['-U"$USERNAME%$PASSWORD"']) @@ -475,16 +451,11 @@ for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc"]: # therefore skip it in that configuration plantestsuite("samba4.ldap.passwords.python(%s)" % env, env, [python, os.path.join(samba4srcdir, "dsdb/tests/python/passwords.py"), "$SERVER", '-U"$USERNAME%$PASSWORD"', "-W$DOMAIN"]) -plantestsuite("samba4.blackbox.dbcheck.alpha13", "none" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck-alpha13.sh"), '$PREFIX_ABS/provision', configuration]) planpythontestsuite("dc:local", "samba.tests.upgradeprovisionneeddc") -planpythontestsuite("none", "samba.tests.upgradeprovision") -planpythontestsuite("none", "samba.tests.xattr") -planpythontestsuite("none", "samba.tests.ntacls") planpythontestsuite("plugin_s4_dc:local", "samba.tests.posixacl") plantestsuite("samba4.deletetest.python(dc)", "dc", ['PYTHONPATH="$PYTHONPATH:%s/lib/subunit/python:%s/lib/testtools"' % (srcdir(), srcdir()), python, os.path.join(samba4srcdir, "dsdb/tests/python/deletetest.py"), '$SERVER', '-U"$USERNAME%$PASSWORD"', '--workgroup=$DOMAIN']) -planpythontestsuite("none", "samba.tests.policy") plantestsuite("samba4.blackbox.samba3dump", "none", [python, os.path.join(samba4srcdir, "scripting/bin/samba3dump"), os.path.join(samba4srcdir, "../testdata/samba3")], allow_empty_output=True) plantestsuite("samba4.blackbox.upgrade", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_s3upgrade.sh"), '$PREFIX/provision']) plantestsuite("samba4.blackbox.provision.py", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_provision.sh"), '$PREFIX/provision']) -- 1.7.9.5 From f06266d4557cb86cd4a9f5dd3e3b59b6df712ee4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 19 Oct 2012 09:53:02 +0200 Subject: [PATCH 08/62] samba-tool user test: Fix expected output. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Fri Oct 19 11:37:44 CEST 2012 on sn-devel-104 (cherry picked from commit e3a48bb5f65bf9f5b77df010dcb75fcc9721cf3b) --- .../python/samba/tests/samba_tool/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/tests/samba_tool/user.py b/source4/scripting/python/samba/tests/samba_tool/user.py index 1466b2f..13ef5d0 100644 --- a/source4/scripting/python/samba/tests/samba_tool/user.py +++ b/source4/scripting/python/samba/tests/samba_tool/user.py @@ -146,7 +146,7 @@ class UserCmdTestCase(SambaToolCmdTest): "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) self.assertCmdSuccess(result, "Can we run setexpiry with names") - self.assertIn("Set expiry for user '%s' to 2 days" % user["name"], out) + self.assertIn("Expiry for user '%s' set to 2 days." % user["name"], out) for user in self.users: found = self._find_user(user["name"]) -- 1.7.9.5 From 5a9fdbf4e33feecc9cf9c6d1c3677996aa4472cf Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 16:02:40 -0700 Subject: [PATCH 09/62] smb.conf(5): Extend 'server min protocol' description. (cherry picked from commit dfe75c2f3591652a370a36f73f70e8055bda9d11) --- docs-xml/smbdotconf/protocol/serverminprotocol.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs-xml/smbdotconf/protocol/serverminprotocol.xml b/docs-xml/smbdotconf/protocol/serverminprotocol.xml index 58323b5..feab218 100644 --- a/docs-xml/smbdotconf/protocol/serverminprotocol.xml +++ b/docs-xml/smbdotconf/protocol/serverminprotocol.xml @@ -5,7 +5,12 @@ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> min protocol - This setting controls the minimum protocol version that the server will allow the client to use. + This setting controls the minimum protocol version that the server + will allow the client to use. + + Normally this option should not be set as the automatic + negotiation phase in the SMB protocol takes care of choosing + the appropriate protocol. server max protocol -- 1.7.9.5 From 08a309f6a7cb76e270f86c0fbc49e08cfbcbe058 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 12:24:15 -0700 Subject: [PATCH 10/62] smb.conf(5): Add basic documentation for 'winbindd socket directory'. (cherry picked from commit d0b38752471dd870ad640fd39076bc51f84c57d1) --- .../smbdotconf/winbind/winbinddsocketdirectory.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml diff --git a/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml new file mode 100644 index 0000000..277cdf1 --- /dev/null +++ b/docs-xml/smbdotconf/winbind/winbinddsocketdirectory.xml @@ -0,0 +1,13 @@ + + + This setting controls the location of the winbind daemon's socket. + + +winbindd privileged socket directory + +$prefix/run/samba/winbindd + -- 1.7.9.5 From d1e52bb335863ac70cf6f9f1e2a57f4b85258d08 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 12:28:16 -0700 Subject: [PATCH 11/62] smb.conf(5): Add basic documentation for 'winbindd privileged socket directory'. (cherry picked from commit 3cea6257a9e4a3e1dc46e6c555d57992a73d6e6c) --- .../winbind/winbinddprivilegedsocketdirectory.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml diff --git a/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml b/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml new file mode 100644 index 0000000..94769a1 --- /dev/null +++ b/docs-xml/smbdotconf/winbind/winbinddprivilegedsocketdirectory.xml @@ -0,0 +1,14 @@ + + + This setting controls the location of the winbind daemon's privileged + socket. + + +winbindd socket directory + +$prefix/lib/winbindd_privileged + -- 1.7.9.5 From ac72219cad5357c797358ef8c9243a4b0bce1636 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 12:30:07 -0700 Subject: [PATCH 12/62] smb.conf(5): Add : to idmap config description to mark it as parametric. (cherry picked from commit c6ba8575ea7fe8b0fdc49d4f823ca441ae99070a) --- docs-xml/smbdotconf/winbind/idmapconfig.xml | 2 +- .../smbdotconf/winbind/winbinddsocketdirectory.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-xml/smbdotconf/winbind/idmapconfig.xml b/docs-xml/smbdotconf/winbind/idmapconfig.xml index 53af31f..e2fa5ed 100644 --- a/docs-xml/smbdotconf/winbind/idmapconfig.xml +++ b/docs-xml/smbdotconf/winbind/idmapconfig.xml @@ -1,4 +1,4 @@ - Date: Thu, 27 Sep 2012 13:28:23 -0700 Subject: [PATCH 13/62] smb.conf(5): Add basic documentation for 'ntvfs handler'. (cherry picked from commit 394258ad4c3413388e800800b2b1b941de037fa3) --- docs-xml/smbdotconf/vfs/ntvfshandler.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs-xml/smbdotconf/vfs/ntvfshandler.xml diff --git a/docs-xml/smbdotconf/vfs/ntvfshandler.xml b/docs-xml/smbdotconf/vfs/ntvfshandler.xml new file mode 100644 index 0000000..e9dbc3c --- /dev/null +++ b/docs-xml/smbdotconf/vfs/ntvfshandler.xml @@ -0,0 +1,16 @@ + + + This specifies the NTVFS handlers for this share. + + Note that this option is only used when the NTVFS file server + is in use. It is not used with the (default) + s3fs file server. + + + +unixuid default + -- 1.7.9.5 From 6c37e2020607a213b78af2264f12becee3e0f27f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 13:38:31 -0700 Subject: [PATCH 14/62] smb.conf(5): Add basic documentation for 'dns forwarder'. (cherry picked from commit e9d91cd4a133d7acb377341282230f99f5e10a12) --- docs-xml/smbdotconf/domain/dnsforwarder.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/dnsforwarder.xml diff --git a/docs-xml/smbdotconf/domain/dnsforwarder.xml b/docs-xml/smbdotconf/domain/dnsforwarder.xml new file mode 100644 index 0000000..23a3886 --- /dev/null +++ b/docs-xml/smbdotconf/domain/dnsforwarder.xml @@ -0,0 +1,17 @@ + + + This option specifies the DNS server that DNS requests will be + forwarded to if they can not be handled by Samba itself. + + + The DNS forwarder is only used if the internal DNS server + in Samba is used. + + + + +192.168.0.1 + -- 1.7.9.5 From b9fdfdaddee42a52ea8d34619ec41998b2e1847a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 17:57:54 -0700 Subject: [PATCH 15/62] smb.conf(5): Add basic documentation 'winbind sealed pipes'. (cherry picked from commit e7c8fcaea5b06897603abb6f4f38ce39b400c9a7) --- docs-xml/smbdotconf/winbind/winbindsealedpipes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs-xml/smbdotconf/winbind/winbindsealedpipes.xml diff --git a/docs-xml/smbdotconf/winbind/winbindsealedpipes.xml b/docs-xml/smbdotconf/winbind/winbindsealedpipes.xml new file mode 100644 index 0000000..26f446e --- /dev/null +++ b/docs-xml/smbdotconf/winbind/winbindsealedpipes.xml @@ -0,0 +1,16 @@ + + + This option controls whether any requests made over the Samba 4 winbind + pipe will be sealed. Disabling sealing can be useful for debugging + purposes. + + Note that this option only applies to the Samba 4 winbind and not + to the standard winbind. + + +yes + -- 1.7.9.5 From 261d2a460be274d5fe239a086c5b97bd0cceef6e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 27 Sep 2012 18:44:43 -0700 Subject: [PATCH 16/62] samba-tool user: Fix typos, improve messages. (cherry picked from commit d09f15163843c5a027476e9087ae96700f6de003) --- source4/scripting/python/samba/netcmd/user.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/source4/scripting/python/samba/netcmd/user.py b/source4/scripting/python/samba/netcmd/user.py index 619fe30..dc50d77 100644 --- a/source4/scripting/python/samba/netcmd/user.py +++ b/source4/scripting/python/samba/netcmd/user.py @@ -262,10 +262,10 @@ samba-tool user enable Testuser1 --URL=ldap://samba.samdom.example.com --usernam Example1 shows how to enable a user in the domain against a remote LDAP server. The --URL parameter is used to specify the remote target server. The --username= and --password= options are used to pass the username and password of a user that exists on the remote server and is authorized to update that server. -Exampl2: +Example2: su samba-tool user enable Testuser2 -Example2 shows how to enable user Testuser2 for use in the domain on the local server. sudo is used so a user may run the command as root. +Example2 shows how to enable user Testuser2 for use in the domain on the local server. sudo is used so a user may run the command as root. Example3: samba-tool user enable --filter=samaccountname=Testuser3 @@ -351,7 +351,7 @@ class cmd_user_disable(Command): class cmd_user_setexpiry(Command): """Set the expiration of a user account. -This command sets the expiration of a user account. The username specified on the command is the sAMAccountName. The username may also be specified using the --filter option. +The user can either be specified by their sAMAccountName or using the --filter option. When a user account expires, it becomes disabled and the user is unable to logon. The administrator may issue the samba-tool user enable command to enable the account for logon. The permissions and memberships associated with the account are retained when the account is enabled. @@ -362,7 +362,7 @@ samba-tool user setexpiry User1 --days=20 --URL=ldap://samba.samdom.example.com Example1 shows how to set the expiration of an account in a remote LDAP server. The --URL parameter is used to specify the remote target server. The --username= and --password= options are used to pass the username and password of a user that exists on the remote server and is authorized to update that server. -Exampl2: +Example2: su samba-tool user setexpiry User2 Example2 shows how to set the account expiration of user User2 so it will never expire. The user in this example resides on the local server. sudo is used so a user may run the command as root. @@ -415,8 +415,12 @@ Example4 shows how to set the account expiration so that it will never expire. # FIXME: Catch more specific exception raise CommandError("Failed to set expiry for user '%s': %s" % ( username or filter, msg)) - self.outf.write("Set expiry for user '%s' to %u days\n" % ( - username or filter, days)) + if days: + self.outf.write("Expiry for user '%s' set to %u days.\n" % ( + username or filter, days)) + else: + self.outf.write("Expiry for user '%s' disabled.\n" % ( + username or filter)) class cmd_user_password(Command): -- 1.7.9.5 From d6fd022667f9aabd9b8988a5eb2bd7bbbfb63ca4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:03:46 -0700 Subject: [PATCH 17/62] smb.conf(5): Add basic documentation for 'samba kcc command'. (cherry picked from commit a63d6a909406c2d0e04f6142f9614c3543ae2d1b) --- docs-xml/smbdotconf/security/sambakcccommand.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs-xml/smbdotconf/security/sambakcccommand.xml diff --git a/docs-xml/smbdotconf/security/sambakcccommand.xml b/docs-xml/smbdotconf/security/sambakcccommand.xml new file mode 100644 index 0000000..6f6ba14 --- /dev/null +++ b/docs-xml/smbdotconf/security/sambakcccommand.xml @@ -0,0 +1,19 @@ + + + This option specifies the path to the Samba KCC command. + This script is used for replication topology replication. + + + It should not be necessary to modify this option except + for testing purposes or if the samba_kcc + was installed in a non-default location. + + + +$prefix/sbin/samba_kcc +/usr/local/bin/kcc + -- 1.7.9.5 From 13583dd8921da2de21e513d3599e56b08997f75b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:09:41 -0700 Subject: [PATCH 18/62] smb.conf(5): Add basic documentation for 'server services'. (cherry picked from commit 3cc61af7ff3b90026fdc6fc84ad905041154bfaf) --- docs-xml/smbdotconf/base/serverservices.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/base/serverservices.xml diff --git a/docs-xml/smbdotconf/base/serverservices.xml b/docs-xml/smbdotconf/base/serverservices.xml new file mode 100644 index 0000000..8ea28e2 --- /dev/null +++ b/docs-xml/smbdotconf/base/serverservices.xml @@ -0,0 +1,17 @@ + + + This option contains the services that the Samba daemon will run. + + An entry in the smb.conf file can either override + the previous value completely or entries can be removed from or added to it + by prefixing them with + or -. + + + +s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate dns +-s3fs +smb + -- 1.7.9.5 From 54f9e63b6f2e1aa2edd612753b02f29eb8605192 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:16:08 -0700 Subject: [PATCH 19/62] smb.conf(5): Add basic documentation for 'dns update command'. (cherry picked from commit 4ccea7f86796070ae6dbf404aa93ad4e5a7ae66e) --- docs-xml/smbdotconf/domain/dnsupdatecommand.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/dnsupdatecommand.xml diff --git a/docs-xml/smbdotconf/domain/dnsupdatecommand.xml b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml new file mode 100644 index 0000000..b8160ab --- /dev/null +++ b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml @@ -0,0 +1,15 @@ + + + This option sets the command that is called when there are + DNS updates. It should update the local machines DNS names using + TSIG-GSS. + + + +$prefix/sbin/samba_dnsupdate +/usr/local/sbin/dnsupdate + -- 1.7.9.5 From d74b85289ad8b6dbaa5d81c10ba209f59c46da32 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:31:08 -0700 Subject: [PATCH 20/62] smb.conf(5): Add basic documentation for 'rndc command'. (cherry picked from commit b0b0266aa70721ebfea8dbc2602e81984a3b6023) --- docs-xml/smbdotconf/domain/rndccommand.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/rndccommand.xml diff --git a/docs-xml/smbdotconf/domain/rndccommand.xml b/docs-xml/smbdotconf/domain/rndccommand.xml new file mode 100644 index 0000000..f22ea1f --- /dev/null +++ b/docs-xml/smbdotconf/domain/rndccommand.xml @@ -0,0 +1,17 @@ + + + This option specifies the path to the name server control utility. + + + The rndc utility should be a part of the + bind installation. + + + +/usr/sbin/rndc +/usr/local/bind9/sbin/rndc + -- 1.7.9.5 From 814bca04755f77cd3716c63c44385020da2c8a41 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:35:06 -0700 Subject: [PATCH 21/62] smb.conf(5): Add basic documentation for 'allow dns updates'. (cherry picked from commit 68fdcaa6b7f69c622df958413ee3809e56861c04) --- docs-xml/smbdotconf/domain/allowdnsupdates.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/allowdnsupdates.xml diff --git a/docs-xml/smbdotconf/domain/allowdnsupdates.xml b/docs-xml/smbdotconf/domain/allowdnsupdates.xml new file mode 100644 index 0000000..fc7d3e8 --- /dev/null +++ b/docs-xml/smbdotconf/domain/allowdnsupdates.xml @@ -0,0 +1,18 @@ + + + This option determines what kind of updates to the DNS are allowed. + + + DNS updates can either be disallowed completely by setting it to + disabled, enabled over secure connections only by + setting it to secure or allowed in all cases + by setting it to enabled or nonsecure. + + + +secure only +disabled + -- 1.7.9.5 From 9baa795aa6596694981e1abc9c2e0ed4a0b7ffc4 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:37:23 -0700 Subject: [PATCH 22/62] smb.conf(5): Add basic documentation for 'spn update command'. (cherry picked from commit 6f36bde82f4a6329b97b400564e69928dffa0173) --- docs-xml/smbdotconf/domain/spnupdatecommand.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/spnupdatecommand.xml diff --git a/docs-xml/smbdotconf/domain/spnupdatecommand.xml b/docs-xml/smbdotconf/domain/spnupdatecommand.xml new file mode 100644 index 0000000..2585a58 --- /dev/null +++ b/docs-xml/smbdotconf/domain/spnupdatecommand.xml @@ -0,0 +1,14 @@ + + + This option sets the command that for updating + servicePrincipalName names from spn_update_list. + + + +$prefix/sbin/samba_spnupdate +/usr/local/sbin/spnupdate + -- 1.7.9.5 From 44c0bd5e2ad822fa550e3427395d14cf0051d061 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:42:55 -0700 Subject: [PATCH 23/62] smb.conf(5): Add basic documentation for 'ntp signd socket directory'. (cherry picked from commit 7341dcac105baad0d06d112578fa3f12826bd4ef) --- .../security/ntpsigndsocketdirectory.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml diff --git a/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml b/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml new file mode 100644 index 0000000..718626d --- /dev/null +++ b/docs-xml/smbdotconf/security/ntpsigndsocketdirectory.xml @@ -0,0 +1,17 @@ + + + This setting controls the location of the socket that + the NTP daemon uses to communicate with Samba for + signing packets. + + If a non-default path is specified here, then it is also necessary + to make NTP aware of the new path using the ntpsigndsocket + directive in ntp.conf. + + +$prefix/run/samba/ntp_signd + -- 1.7.9.5 From 81bf0ede4b03e4ce1eb33c736690499097ce2062 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:52:13 -0700 Subject: [PATCH 24/62] smb.conf(5): Add basic documentation for 'log nt token command'. (cherry picked from commit e27e8f4f88dac6c938272ced6ca4b0fd3b20f8e0) --- docs-xml/smbdotconf/security/lognttokencommand.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs-xml/smbdotconf/security/lognttokencommand.xml diff --git a/docs-xml/smbdotconf/security/lognttokencommand.xml b/docs-xml/smbdotconf/security/lognttokencommand.xml new file mode 100644 index 0000000..69703b5 --- /dev/null +++ b/docs-xml/smbdotconf/security/lognttokencommand.xml @@ -0,0 +1,14 @@ + + + This option can be set to a command that will be called when new nt + tokens are created. + + This is only useful for development purposes. + + + + -- 1.7.9.5 From 44db97b46be8aea12f609416d4acc2acb144b88a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:56:44 -0700 Subject: [PATCH 25/62] smb.conf(5): Add basic documentation for 'tls cafile'. (cherry picked from commit 4e1a06dc238c31a3b2343fcf4983c78fdc52f758) --- docs-xml/smbdotconf/security/tlscafile.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs-xml/smbdotconf/security/tlscafile.xml diff --git a/docs-xml/smbdotconf/security/tlscafile.xml b/docs-xml/smbdotconf/security/tlscafile.xml new file mode 100644 index 0000000..6675ff3 --- /dev/null +++ b/docs-xml/smbdotconf/security/tlscafile.xml @@ -0,0 +1,20 @@ + + + This option can be set to a file (PEM format) + containing CA certificates of root CAs to trust to sign + certificates or intermediate CA certificates. + + At the moment, TLS is only used by the web server. + + + tls certfile + tls crlfile + tls dh params file + tls enabled + tls keyfile + + -- 1.7.9.5 From acca42320451e32c07432afb39f2c4b2f238ae77 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 10:58:45 -0700 Subject: [PATCH 26/62] smb.conf(5): Add basic documentation for 'tls keyfile'. (cherry picked from commit 0f5e45b84c9b54909294fc0ea48f7b6fb3ca2878) --- docs-xml/smbdotconf/security/tlscafile.xml | 2 -- docs-xml/smbdotconf/security/tlskeyfile.xml | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 docs-xml/smbdotconf/security/tlskeyfile.xml diff --git a/docs-xml/smbdotconf/security/tlscafile.xml b/docs-xml/smbdotconf/security/tlscafile.xml index 6675ff3..ea2a595 100644 --- a/docs-xml/smbdotconf/security/tlscafile.xml +++ b/docs-xml/smbdotconf/security/tlscafile.xml @@ -7,8 +7,6 @@ This option can be set to a file (PEM format) containing CA certificates of root CAs to trust to sign certificates or intermediate CA certificates. - - At the moment, TLS is only used by the web server. tls certfile diff --git a/docs-xml/smbdotconf/security/tlskeyfile.xml b/docs-xml/smbdotconf/security/tlskeyfile.xml new file mode 100644 index 0000000..a37a938 --- /dev/null +++ b/docs-xml/smbdotconf/security/tlskeyfile.xml @@ -0,0 +1,18 @@ + + + This option can be set to a file (PEM format) + containing the RSA private key. This file must be accessible without + a pass-phrase, i.e. it must not be encrypted. + + + tls certfile + tls crlfile + tls dh params file + tls enabled + tls cafile + + -- 1.7.9.5 From e061400a91910797a0654a5e2b8210a9e16d3a62 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 11:00:09 -0700 Subject: [PATCH 27/62] smb.conf(5): Add basic documentation for 'tls certfile'. (cherry picked from commit 008dfb9a2167603c65fb4db56c8bd62cdd2447d0) --- docs-xml/smbdotconf/security/tlscertfile.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/security/tlscertfile.xml diff --git a/docs-xml/smbdotconf/security/tlscertfile.xml b/docs-xml/smbdotconf/security/tlscertfile.xml new file mode 100644 index 0000000..317cb37 --- /dev/null +++ b/docs-xml/smbdotconf/security/tlscertfile.xml @@ -0,0 +1,17 @@ + + + This option can be set to a file (PEM format) + containing the RSA certificate. + + + tls keyfile + tls crlfile + tls dh params file + tls enabled + tls cafile + + -- 1.7.9.5 From f496b0ca4ddafbfdaba181b3a588ecbc2b9be42f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 11:05:47 -0700 Subject: [PATCH 28/62] smb.conf(5): Add basic documentation for 'tls crlfile'. (cherry picked from commit 2e4f054e16aa9f67ec6bfb8ec7af6ebbba26db1d) --- docs-xml/smbdotconf/security/tlscrlfile.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 docs-xml/smbdotconf/security/tlscrlfile.xml diff --git a/docs-xml/smbdotconf/security/tlscrlfile.xml b/docs-xml/smbdotconf/security/tlscrlfile.xml new file mode 100644 index 0000000..442ff84 --- /dev/null +++ b/docs-xml/smbdotconf/security/tlscrlfile.xml @@ -0,0 +1,17 @@ + + + This option can be set to a file containing a certificate + revocation list (CRL). + + + tls certfile + tls crlfile + tls dh params file + tls enabled + tls cafile + + -- 1.7.9.5 From a6fce109f654cf7b5dede14cb9d3f204268fcee0 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 11:08:49 -0700 Subject: [PATCH 29/62] smb.conf(5): Add basic documentation for 'tls enabled'. (cherry picked from commit 946a873e470ed4309bf56dae574b8f48a4dc629f) --- docs-xml/smbdotconf/security/tlsenabled.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs-xml/smbdotconf/security/tlsenabled.xml diff --git a/docs-xml/smbdotconf/security/tlsenabled.xml b/docs-xml/smbdotconf/security/tlsenabled.xml new file mode 100644 index 0000000..9bd736a --- /dev/null +++ b/docs-xml/smbdotconf/security/tlsenabled.xml @@ -0,0 +1,11 @@ + + + If this option is set to yes, then Samba + will use TLS when possible in communication. + + yes + -- 1.7.9.5 From 5217ecac6a698f07add504f71d511aa5ec5cc120 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 11:13:13 -0700 Subject: [PATCH 30/62] smb.conf(5): Add basic documentation for 'tls dh params file'. (cherry picked from commit 03b48e2bdbea30afad9b414fbab5dae67e57b5cf) --- docs-xml/smbdotconf/security/tlsdhparamsfile.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs-xml/smbdotconf/security/tlsdhparamsfile.xml diff --git a/docs-xml/smbdotconf/security/tlsdhparamsfile.xml b/docs-xml/smbdotconf/security/tlsdhparamsfile.xml new file mode 100644 index 0000000..ba809c7 --- /dev/null +++ b/docs-xml/smbdotconf/security/tlsdhparamsfile.xml @@ -0,0 +1,18 @@ + + + This option can be set to a file with Diffie-Hellman parameters + which will be used with EDH ciphers. + + + + tls certfile + tls crlfile + tls cafile + tls enabled + tls keyfile + + -- 1.7.9.5 From e56ffe0471e06d3041d67f6c4f57b3064bdf0169 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 11:20:09 -0700 Subject: [PATCH 31/62] smb.conf(5): Add 'socket address' as alias for 'nbt client socket address'. (cherry picked from commit 6c160e3892eea219c50bbb2d1113460817bfad08) --- .../smbdotconf/misc/nbtclientsocketaddress.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-xml/smbdotconf/misc/nbtclientsocketaddress.xml b/docs-xml/smbdotconf/misc/nbtclientsocketaddress.xml index f6784c3..7ef05a2 100644 --- a/docs-xml/smbdotconf/misc/nbtclientsocketaddress.xml +++ b/docs-xml/smbdotconf/misc/nbtclientsocketaddress.xml @@ -3,6 +3,7 @@ type="string" developer="1" xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> +socket address This option allows you to control what address Samba will send NBT client packets from, and process replies using, -- 1.7.9.5 From 7c3517ff224f30fc0bc105c2ca1cb7eec70811e5 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 13:01:39 -0700 Subject: [PATCH 32/62] smb.conf(5): Add 'ldap password sync' as synonym for 'ldap passwd sync'. (cherry picked from commit 695df863eddd6ee323229fe29a4a40712f3553b4) --- docs-xml/smbdotconf/ldap/ldappasswdsync.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-xml/smbdotconf/ldap/ldappasswdsync.xml b/docs-xml/smbdotconf/ldap/ldappasswdsync.xml index 864bfc4..8c7dea6 100644 --- a/docs-xml/smbdotconf/ldap/ldappasswdsync.xml +++ b/docs-xml/smbdotconf/ldap/ldappasswdsync.xml @@ -5,6 +5,7 @@ type="enum" xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> +ldap password sync This option is used to define whether or not Samba should sync the LDAP password with the NT -- 1.7.9.5 From b80f1dc98cc7dc97488284fe95f794a67aab7706 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 13:05:07 -0700 Subject: [PATCH 33/62] smb.conf(5): Add basic documentation for 'afs token lifetime'. (cherry picked from commit 0cea6daffe42f5b9b6ee61eb430da3f86bea31df) --- docs-xml/smbdotconf/misc/afstokenlifetime.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs-xml/smbdotconf/misc/afstokenlifetime.xml diff --git a/docs-xml/smbdotconf/misc/afstokenlifetime.xml b/docs-xml/smbdotconf/misc/afstokenlifetime.xml new file mode 100644 index 0000000..2588738 --- /dev/null +++ b/docs-xml/smbdotconf/misc/afstokenlifetime.xml @@ -0,0 +1,16 @@ + + + This parameter controls the lifetime of tokens that the AFS fake-kaserver claims. + In reality these never expire but this lifetime controls when the afs client + will forget the token. + + + Set this parameter to 0 to get NEVERDATE. + + +604800 + -- 1.7.9.5 From 639b829b4f9d715eb2bdf78682397d457180c4c9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 21:25:50 -0700 Subject: [PATCH 34/62] smb.conf(5): Add basic documentation for 'nsupdate command'. (cherry picked from commit aad30c062fd176fa15994a44a0178d51764cdbf7) --- docs-xml/smbdotconf/domain/nsupdatecommand.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs-xml/smbdotconf/domain/nsupdatecommand.xml diff --git a/docs-xml/smbdotconf/domain/nsupdatecommand.xml b/docs-xml/smbdotconf/domain/nsupdatecommand.xml new file mode 100644 index 0000000..0ad3f5c --- /dev/null +++ b/docs-xml/smbdotconf/domain/nsupdatecommand.xml @@ -0,0 +1,13 @@ + + + This option sets the path to the nsupdate + command which is used for GSS-TSIG dynamic DNS updates. + + + +$prefix/sbin/nsupdate -g + -- 1.7.9.5 From 49da780c61990ccb5d304ace4be2eb508cd38e04 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 19 Oct 2012 08:33:31 +0200 Subject: [PATCH 35/62] smb.conf(5): Fix mixing of tabs and spaces. (cherry picked from commit 47902702b3e6390de05f8fca2bc457936af9f5c1) --- docs-xml/smbdotconf/base/serverservices.xml | 13 +++++++------ docs-xml/smbdotconf/domain/dnsupdatecommand.xml | 2 +- docs-xml/smbdotconf/domain/nsupdatecommand.xml | 2 +- docs-xml/smbdotconf/domain/rndccommand.xml | 2 +- docs-xml/smbdotconf/domain/spnupdatecommand.xml | 2 +- docs-xml/smbdotconf/misc/afstokenlifetime.xml | 15 +++++++-------- docs-xml/smbdotconf/protocol/serverminprotocol.xml | 8 ++++---- docs-xml/smbdotconf/security/lognttokencommand.xml | 2 +- docs-xml/smbdotconf/security/sambakcccommand.xml | 2 +- docs-xml/smbdotconf/security/tlsenabled.xml | 4 ++-- docs-xml/smbdotconf/vfs/ntvfshandler.xml | 2 +- docs-xml/smbdotconf/winbind/idmapconfig.xml | 2 +- 12 files changed, 28 insertions(+), 28 deletions(-) diff --git a/docs-xml/smbdotconf/base/serverservices.xml b/docs-xml/smbdotconf/base/serverservices.xml index 8ea28e2..503938a 100644 --- a/docs-xml/smbdotconf/base/serverservices.xml +++ b/docs-xml/smbdotconf/base/serverservices.xml @@ -1,15 +1,16 @@ - This option contains the services that the Samba daemon will run. + This option contains the services that the Samba daemon will + run. - An entry in the smb.conf file can either override - the previous value completely or entries can be removed from or added to it - by prefixing them with + or -. - + An entry in the smb.conf file can either + override the previous value completely or entries can be removed from + or added to it by prefixing them with + or + -. s3fs rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd kcc dnsupdate dns diff --git a/docs-xml/smbdotconf/domain/dnsupdatecommand.xml b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml index b8160ab..08ff90a 100644 --- a/docs-xml/smbdotconf/domain/dnsupdatecommand.xml +++ b/docs-xml/smbdotconf/domain/dnsupdatecommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/domain/nsupdatecommand.xml b/docs-xml/smbdotconf/domain/nsupdatecommand.xml index 0ad3f5c..3cf02f1 100644 --- a/docs-xml/smbdotconf/domain/nsupdatecommand.xml +++ b/docs-xml/smbdotconf/domain/nsupdatecommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/domain/rndccommand.xml b/docs-xml/smbdotconf/domain/rndccommand.xml index f22ea1f..b407ff2 100644 --- a/docs-xml/smbdotconf/domain/rndccommand.xml +++ b/docs-xml/smbdotconf/domain/rndccommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/domain/spnupdatecommand.xml b/docs-xml/smbdotconf/domain/spnupdatecommand.xml index 2585a58..f63be84 100644 --- a/docs-xml/smbdotconf/domain/spnupdatecommand.xml +++ b/docs-xml/smbdotconf/domain/spnupdatecommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/misc/afstokenlifetime.xml b/docs-xml/smbdotconf/misc/afstokenlifetime.xml index 2588738..cbf9574 100644 --- a/docs-xml/smbdotconf/misc/afstokenlifetime.xml +++ b/docs-xml/smbdotconf/misc/afstokenlifetime.xml @@ -1,13 +1,12 @@ + context="G" + type="integer" + advanced="1" + xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> - This parameter controls the lifetime of tokens that the AFS fake-kaserver claims. - In reality these never expire but this lifetime controls when the afs client - will forget the token. - + This parameter controls the lifetime of tokens that the AFS + fake-kaserver claims. In reality these never expire but this lifetime + controls when the afs client will forget the token. Set this parameter to 0 to get NEVERDATE. diff --git a/docs-xml/smbdotconf/protocol/serverminprotocol.xml b/docs-xml/smbdotconf/protocol/serverminprotocol.xml index feab218..4edecc4 100644 --- a/docs-xml/smbdotconf/protocol/serverminprotocol.xml +++ b/docs-xml/smbdotconf/protocol/serverminprotocol.xml @@ -1,16 +1,16 @@ min protocol This setting controls the minimum protocol version that the server will allow the client to use. - Normally this option should not be set as the automatic - negotiation phase in the SMB protocol takes care of choosing - the appropriate protocol. + Normally this option should not be set as the automatic negotiation + phase in the SMB protocol takes care of choosing the appropriate + protocol. server max protocol diff --git a/docs-xml/smbdotconf/security/lognttokencommand.xml b/docs-xml/smbdotconf/security/lognttokencommand.xml index 69703b5..33ec23b 100644 --- a/docs-xml/smbdotconf/security/lognttokencommand.xml +++ b/docs-xml/smbdotconf/security/lognttokencommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/security/sambakcccommand.xml b/docs-xml/smbdotconf/security/sambakcccommand.xml index 6f6ba14..9621792 100644 --- a/docs-xml/smbdotconf/security/sambakcccommand.xml +++ b/docs-xml/smbdotconf/security/sambakcccommand.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/security/tlsenabled.xml b/docs-xml/smbdotconf/security/tlsenabled.xml index 9bd736a..106ddda 100644 --- a/docs-xml/smbdotconf/security/tlsenabled.xml +++ b/docs-xml/smbdotconf/security/tlsenabled.xml @@ -1,8 +1,8 @@ + xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"> If this option is set to yes, then Samba will use TLS when possible in communication. diff --git a/docs-xml/smbdotconf/vfs/ntvfshandler.xml b/docs-xml/smbdotconf/vfs/ntvfshandler.xml index e9dbc3c..aa3bce5 100644 --- a/docs-xml/smbdotconf/vfs/ntvfshandler.xml +++ b/docs-xml/smbdotconf/vfs/ntvfshandler.xml @@ -1,6 +1,6 @@ diff --git a/docs-xml/smbdotconf/winbind/idmapconfig.xml b/docs-xml/smbdotconf/winbind/idmapconfig.xml index e2fa5ed..5d3605a 100644 --- a/docs-xml/smbdotconf/winbind/idmapconfig.xml +++ b/docs-xml/smbdotconf/winbind/idmapconfig.xml @@ -1,6 +1,6 @@ -- 1.7.9.5 From 9165609a2412c7391d12d9cc33ecd9941098be40 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 02:57:16 +0200 Subject: [PATCH 36/62] tests: Convert find_missing_doc into a unit test. (cherry picked from commit d2f8fe855d0705faf216714cf147038563c0ba7e) --- docs-xml/Makefile | 3 +- docs-xml/scripts/find_missing_doc | 83 ------------------------ selftest/tests.py | 1 + source4/scripting/python/samba/tests/docs.py | 90 ++++++++++++++++++++++++++ 4 files changed, 92 insertions(+), 85 deletions(-) delete mode 100755 docs-xml/scripts/find_missing_doc create mode 100644 source4/scripting/python/samba/tests/docs.py diff --git a/docs-xml/Makefile b/docs-xml/Makefile index 0b4e880..6cb069f 100644 --- a/docs-xml/Makefile +++ b/docs-xml/Makefile @@ -260,8 +260,7 @@ $(PEARSONDIR)/%.report.html: $(PEARSONDIR)/%.xml cd $( - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -import optparse -import os -import re - -parser = optparse.OptionParser("source_dir") - -(opts, args) = parser.parse_args() - -if len(args) == 1: - topdir = args[0] -else: - topdir = "." - -# Reading links from manpage - -curdir = os.getcwd() -doc = {} - -os.chdir("smbdotconf"); - -f = os.popen("xsltproc --xinclude --param smb.context ALL generate-context.xsl parameters.all.xml", "r") -try: - for l in f.readlines(): - m = re.match(' 2007-2012 +# +# Tests for documentation. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +"""Tests for presence of documentation.""" + +import samba +import samba.tests + +import os +import re +import subprocess + + +class TestCase(samba.tests.TestCase): + + def _format_message(self, parameters, message): + parameters = list(parameters) + parameters.sort() + return message + '\n\n %s' % ('\n '.join(parameters)) + + +def get_documented_parameters(sourcedir): + p = subprocess.Popen( + ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], + stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) + out, err = p.communicate() + assert p.returncode == 0, "returncode was %r" % p.returncode + for l in out.splitlines(): + m = re.match(' 0: + self.fail(self._format_message(unknown, + "Parameters that are documented but not in the implementation:")) + undocumented = parameters.difference(documented) + if len(undocumented) > 0: + self.fail(self._format_message(undocumented, + "Parameters that are in the implementation but undocumented:")) -- 1.7.9.5 From 0dccdc09a6fd2aa069fef505095d285a2a2e7536 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 18:41:19 +0200 Subject: [PATCH 37/62] samba.tests.docs: Distinguish between unknown and undocumened parameters. (cherry picked from commit d0e644e0c83636b4e4c6b52ce0f861ffe38cedeb) --- source4/scripting/python/samba/tests/docs.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index 1ab3e55..3e508eb 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -76,14 +76,22 @@ def get_implementation_parameters(sourcedir): class SmbDotConfTests(TestCase): - def test_missing(self): + def test_unknown(self): topdir = samba.source_tree_topdir() documented = set(get_documented_parameters(topdir)) parameters = set(get_implementation_parameters(topdir)) + # Filter out parametric options, since we can't find them in the parm + # table + documented = set([p for p in documented if not ":" in p]) unknown = documented.difference(parameters) if len(unknown) > 0: self.fail(self._format_message(unknown, "Parameters that are documented but not in the implementation:")) + + def test_undocumented(self): + topdir = samba.source_tree_topdir() + documented = set(get_documented_parameters(topdir)) + parameters = set(get_implementation_parameters(topdir)) undocumented = parameters.difference(documented) if len(undocumented) > 0: self.fail(self._format_message(undocumented, -- 1.7.9.5 From b2e1458385e04890170d35216ed4b43045916b20 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 12:40:00 -0700 Subject: [PATCH 38/62] samba.tests.docs: Support synonyms. (cherry picked from commit be4dea45daca51a817a7c383a4092bf69650c6cd) --- source4/scripting/python/samba/tests/docs.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index 3e508eb..9575555 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -46,6 +46,10 @@ def get_documented_parameters(sourcedir): if m: name = m.group(1).replace(" ", "") yield name + m = re.match('(.*)', l) + if m: + name = m.group(1).replace(" ", "") + yield name def get_implementation_parameters(sourcedir): -- 1.7.9.5 From b3a1a97ce45e2ce1d28a44bb769829f5f459c5fa Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 13:09:01 -0700 Subject: [PATCH 39/62] samba.tests.docs: Support spaces before synonyms. (cherry picked from commit 32fad2b910a9e4f9b753b43cb818c72829236a88) --- source4/scripting/python/samba/tests/docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index 9575555..f3c9fdf 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -46,7 +46,7 @@ def get_documented_parameters(sourcedir): if m: name = m.group(1).replace(" ", "") yield name - m = re.match('(.*)', l) + m = re.match('.*(.*).*', l) if m: name = m.group(1).replace(" ", "") yield name -- 1.7.9.5 From 0cdefff4b8901101022c04ccd7a8598e92a2c2ce Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 26 Sep 2012 13:20:42 -0700 Subject: [PATCH 40/62] smb.conf(5): Consistent spelling of parameter names. This includes spacing and casing. (cherry picked from commit 2a31f0b50976dc5b6770639b60184a8ef9158b8b) --- source4/scripting/python/samba/tests/docs.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index f3c9fdf..ec2ab37 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -44,11 +44,11 @@ def get_documented_parameters(sourcedir): for l in out.splitlines(): m = re.match('(.*).*', l) if m: - name = m.group(1).replace(" ", "") + name = m.group(1) yield name @@ -73,7 +73,7 @@ def get_implementation_parameters(sourcedir): continue name = m.group(1) - yield name.lower().replace(" ", "") + yield name finally: f.close() -- 1.7.9.5 From e2cd4a43a0c4c38c3e7316844e4fa58480b0d8ec Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 09:52:41 -0700 Subject: [PATCH 41/62] samba.tests.docs: Skip tests if xsltproc is not present. (cherry picked from commit 8412b57f5ce40901a0a4e2e66c5f9bcbdcb4b46e) --- source4/scripting/python/samba/tests/docs.py | 29 +++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index ec2ab37..def759b 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -21,7 +21,9 @@ import samba import samba.tests +from samba.tests import TestSkipped +import errno import os import re import subprocess @@ -35,10 +37,21 @@ class TestCase(samba.tests.TestCase): return message + '\n\n %s' % ('\n '.join(parameters)) +class NoXsltProc(Exception): + + def __init__(self): + Exception.__init__(self, "'xsltproc' is not installed") + + def get_documented_parameters(sourcedir): - p = subprocess.Popen( - ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], - stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) + try: + p = subprocess.Popen( + ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], + stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) + except OSError, e: + if e.errno == errno.ENOENT: + raise NoXsltProc() + raise out, err = p.communicate() assert p.returncode == 0, "returncode was %r" % p.returncode for l in out.splitlines(): @@ -82,7 +95,10 @@ class SmbDotConfTests(TestCase): def test_unknown(self): topdir = samba.source_tree_topdir() - documented = set(get_documented_parameters(topdir)) + try: + documented = set(get_documented_parameters(topdir)) + except NoXsltProc: + raise TestSkipped("'xsltproc' is missing, unable to load parameters") parameters = set(get_implementation_parameters(topdir)) # Filter out parametric options, since we can't find them in the parm # table @@ -94,7 +110,10 @@ class SmbDotConfTests(TestCase): def test_undocumented(self): topdir = samba.source_tree_topdir() - documented = set(get_documented_parameters(topdir)) + try: + documented = set(get_documented_parameters(topdir)) + except NoXsltProc: + raise TestSkipped("'xsltproc' is missing, unable to load parameters") parameters = set(get_implementation_parameters(topdir)) undocumented = parameters.difference(documented) if len(undocumented) > 0: -- 1.7.9.5 From c822282e57d03ecea03029a8c47e304a59156e08 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 28 Sep 2012 21:40:32 -0700 Subject: [PATCH 42/62] samba.tests.docs: Write error output from xsltproc to standard out. (cherry picked from commit cfa72bcc5e93a840fc07f5d419216443ef8f7599) --- source4/scripting/python/samba/tests/docs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index def759b..d4d4a62 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -47,7 +47,7 @@ def get_documented_parameters(sourcedir): try: p = subprocess.Popen( ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], - stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) + stderr=subprocess.STDOUT, stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) except OSError, e: if e.errno == errno.ENOENT: raise NoXsltProc() -- 1.7.9.5 From 6abaa477a63054214cced07cfeb4367492a3253b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 19 Oct 2012 09:16:55 +0200 Subject: [PATCH 43/62] samba.tests.docs: Assume docs are generated by waf. (cherry picked from commit ed37b8ad14d496114654017d394fa18d63456aee) --- source4/scripting/python/samba/tests/docs.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index d4d4a62..7105afd 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -44,10 +44,14 @@ class NoXsltProc(Exception): def get_documented_parameters(sourcedir): + path = os.path.join(sourcedir, "bin", "default", "docs-xml", "smbdotconf") + if not os.path.exists(os.path.join(path, "parameters.all.xml")): + raise Exception("Unable to find parameters.all.xml") try: p = subprocess.Popen( - ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", "generate-context.xsl", "parameters.all.xml"], - stderr=subprocess.STDOUT, stdout=subprocess.PIPE, cwd=os.path.join(sourcedir, "docs-xml", "smbdotconf")) + ["xsltproc", "--xinclude", "--param", "smb.context", "ALL", os.path.join(sourcedir, "docs-xml", "smbdotconf", "generate-context.xsl"), "parameters.all.xml"], + stderr=subprocess.STDOUT, stdout=subprocess.PIPE, + cwd=path) except OSError, e: if e.errno == errno.ENOENT: raise NoXsltProc() -- 1.7.9.5 From 4d8eb92ff590bb71c47496b265d6a197058b0413 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 19 Oct 2012 09:20:44 +0200 Subject: [PATCH 44/62] smb.conf(5): Mark four removed parameters as such. (cherry picked from commit 4b4e8e21235615af94788fa0ebfa0b0bc09f14fd) --- .../smbdotconf/security/directorysecuritymask.xml | 1 + .../security/forcedirectorysecuritymode.xml | 1 + docs-xml/smbdotconf/security/forcesecuritymode.xml | 3 ++- docs-xml/smbdotconf/security/securitymask.xml | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs-xml/smbdotconf/security/directorysecuritymask.xml b/docs-xml/smbdotconf/security/directorysecuritymask.xml index 47feaf0..c5c8c65 100644 --- a/docs-xml/smbdotconf/security/directorysecuritymask.xml +++ b/docs-xml/smbdotconf/security/directorysecuritymask.xml @@ -1,5 +1,6 @@ diff --git a/docs-xml/smbdotconf/security/forcedirectorysecuritymode.xml b/docs-xml/smbdotconf/security/forcedirectorysecuritymode.xml index 51c5de1..3ea3b5c 100644 --- a/docs-xml/smbdotconf/security/forcedirectorysecuritymode.xml +++ b/docs-xml/smbdotconf/security/forcedirectorysecuritymode.xml @@ -1,6 +1,7 @@ diff --git a/docs-xml/smbdotconf/security/forcesecuritymode.xml b/docs-xml/smbdotconf/security/forcesecuritymode.xml index b6713b1..2568bcc 100644 --- a/docs-xml/smbdotconf/security/forcesecuritymode.xml +++ b/docs-xml/smbdotconf/security/forcesecuritymode.xml @@ -1,6 +1,7 @@ diff --git a/docs-xml/smbdotconf/security/securitymask.xml b/docs-xml/smbdotconf/security/securitymask.xml index d1e78be..cb7fcfa 100644 --- a/docs-xml/smbdotconf/security/securitymask.xml +++ b/docs-xml/smbdotconf/security/securitymask.xml @@ -1,6 +1,7 @@ -- 1.7.9.5 From eaeaad0b2dec0f5fbcbcd10b811c6c26c19a3f52 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 19 Oct 2012 09:21:01 +0200 Subject: [PATCH 45/62] samba.tests.docs: Ignore removed parameters. (cherry picked from commit 364ed82d22bbcd69ae237098ba8d6946969bd390) --- source4/scripting/python/samba/tests/docs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source4/scripting/python/samba/tests/docs.py b/source4/scripting/python/samba/tests/docs.py index 7105afd..c1b3716 100644 --- a/source4/scripting/python/samba/tests/docs.py +++ b/source4/scripting/python/samba/tests/docs.py @@ -60,6 +60,8 @@ def get_documented_parameters(sourcedir): assert p.returncode == 0, "returncode was %r" % p.returncode for l in out.splitlines(): m = re.match(' Date: Fri, 26 Oct 2012 11:50:41 -0800 Subject: [PATCH 46/62] source4.selftest.tests: Consistent naming of smbtorture binary. (cherry picked from commit 55507d0612ecf2db34867eb6065fc5038ea81aa0) --- source4/selftest/tests.py | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 0bc7b29..82e7836 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -25,8 +25,8 @@ import subprocess samba4srcdir = source4dir() samba4bindir = bindir() -smb4torture = binpath("smbtorture4") -smb4torture_testsuite_list = subprocess.Popen([smb4torture, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() +smbtorture4 = binpath("smbtorture4") +smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() validate = os.getenv("VALIDATE", "") if validate: validate_list = [validate] @@ -41,13 +41,13 @@ def plansmbtorturetestsuite(name, env, options, modname=None): modname = "samba4.%s" % name if isinstance(options, list): options = " ".join(options) - cmdline = "%s $LISTOPT %s %s" % (valgrindify(smb4torture), options, name) + cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) plantestsuite_loadlist(modname, env, cmdline) -def smb4torture_testsuites(prefix): - return filter(lambda x: x.startswith(prefix), smb4torture_testsuite_list) +def smbtorture4_testsuites(prefix): + return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) -subprocess.call([smb4torture, "-V"], stdout=sys.stderr) +subprocess.call([smbtorture4, "-V"], stdout=sys.stderr) bbdir = os.path.join(srcdir(), "testprogs/blackbox") @@ -57,7 +57,7 @@ if not os.getenv("SELFTEST_VERBOSE"): torture_options.append("--format=subunit") if os.getenv("SELFTEST_QUICK"): torture_options.append("--option=torture:quick=yes") -smb4torture += " " + " ".join(torture_options) +smbtorture4 += " " + " ".join(torture_options) print >>sys.stderr, "OPTIONS %s" % " ".join(torture_options) @@ -87,7 +87,7 @@ for options in ['-U"$USERNAME%$PASSWORD"']: plantestsuite("samba4.ldb.ldapi with options %s(dc:local)" % options, "dc:local", "%s/test_ldb.sh ldapi $PREFIX_ABS/dc/private/ldapi %s" % (bbdir, options)) -for t in smb4torture_testsuites("ldap."): +for t in smbtorture4_testsuites("ldap."): plansmbtorturetestsuite(t, "dc", '-U"$USERNAME%$PASSWORD" //$SERVER_IP/_none_') ldbdir = os.path.join(srcdir(), "lib/ldb") @@ -103,7 +103,7 @@ else: # that they stay passing ncacn_np_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.altercontext", "rpc.multibind", "rpc.netlogon", "rpc.handles", "rpc.samsync", "rpc.samba3-sessionkey", "rpc.samba3-getusername", "rpc.samba3-lsa", "rpc.samba3-bind", "rpc.samba3-netlogon", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"] ncalrpc_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.altercontext", "rpc.multibind", "rpc.netlogon", "rpc.drsuapi", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"] -drs_rpc_tests = smb4torture_testsuites("drs.rpc") +drs_rpc_tests = smbtorture4_testsuites("drs.rpc") ncacn_ip_tcp_tests = ["rpc.schannel", "rpc.join", "rpc.lsa", "rpc.dssetup", "rpc.multibind", "rpc.netlogon", "rpc.asyncbind", "rpc.lsalookup", "rpc.lsa-getuser", "rpc.schannel2", "rpc.authcontext"] + drs_rpc_tests slow_ncacn_np_tests = ["rpc.samlogon", "rpc.samr.users", "rpc.samr.large-dc", "rpc.samr.users.privileges", "rpc.samr.passwords", "rpc.samr.passwords.pwdlastset"] slow_ncacn_ip_tcp_tests = ["rpc.samr", "rpc.cracknames"] @@ -111,7 +111,7 @@ slow_ncacn_ip_tcp_tests = ["rpc.samr", "rpc.cracknames"] all_rpc_tests = ncalrpc_tests + ncacn_np_tests + ncacn_ip_tcp_tests + slow_ncacn_np_tests + slow_ncacn_ip_tcp_tests + ["rpc.lsa.secrets", "rpc.pac", "rpc.samba3-sharesec", "rpc.countcalls"] # Make sure all tests get run -rpc_tests = smb4torture_testsuites("rpc.") +rpc_tests = smbtorture4_testsuites("rpc.") auto_rpc_tests = filter(lambda t: t not in all_rpc_tests, rpc_tests) for bindoptions in ["seal,padcheck"] + validate_list + ["bigendian"]: @@ -157,12 +157,12 @@ for transport in ["ncacn_np", "ncacn_ip_tcp"]: plansmbtorturetestsuite(t, env, ["%s:$SERVER" % transport, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s" % (t, transport)) # Tests for the DFS referral calls implementation -for t in smb4torture_testsuites("dfs."): +for t in smbtorture4_testsuites("dfs."): plansmbtorturetestsuite(t, "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') # Tests for the NET API (net.api.become.dc tested below against all the roles) -net_tests = filter(lambda x: "net.api.become.dc" not in x, smb4torture_testsuites("net.")) +net_tests = filter(lambda x: "net.api.become.dc" not in x, smbtorture4_testsuites("net.")) for t in net_tests: plansmbtorturetestsuite(t, "dc", '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate) @@ -232,28 +232,28 @@ plansmbtorturetestsuite('rpc.echo', "dc", ['ncacn_np:$SERVER[smb2]', '-U$USERNAM plansmbtorturetestsuite('ntp.signd', "dc:local", ['ncacn_np:$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.ntp.signd") -nbt_tests = smb4torture_testsuites("nbt.") +nbt_tests = smbtorture4_testsuites("nbt.") for t in nbt_tests: plansmbtorturetestsuite(t, "dc", "//$SERVER/_none_ -U\"$USERNAME%$PASSWORD\"") # Tests against the NTVFS POSIX backend ntvfsargs = ["--option=torture:sharedelay=10000", "--option=torture:oplocktimeout=3", "--option=torture:writetimeupdatedelay=50000"] -smb2 = smb4torture_testsuites("smb2.") +smb2 = smbtorture4_testsuites("smb2.") #The QFILEINFO-IPC test needs to be on ipc$ -raw = filter(lambda x: "raw.qfileinfo.ipc" not in x, smb4torture_testsuites("raw.")) -base = smb4torture_testsuites("base.") +raw = filter(lambda x: "raw.qfileinfo.ipc" not in x, smbtorture4_testsuites("raw.")) +base = smbtorture4_testsuites("base.") -netapi = smb4torture_testsuites("netapi.") +netapi = smbtorture4_testsuites("netapi.") -libsmbclient = smb4torture_testsuites("libsmbclient.") +libsmbclient = smbtorture4_testsuites("libsmbclient.") for t in base + raw + smb2 + netapi + libsmbclient: plansmbtorturetestsuite(t, "dc", ['//$SERVER/tmp', '-U$USERNAME%$PASSWORD'] + ntvfsargs) plansmbtorturetestsuite("raw.qfileinfo.ipc", "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') -for t in smb4torture_testsuites("rap."): +for t in smbtorture4_testsuites("rap."): plansmbtorturetestsuite(t, "dc", '//$SERVER/IPC\$ -U$USERNAME%$PASSWORD') # Tests against the NTVFS CIFS backend @@ -269,7 +269,7 @@ plansmbtorturetestsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USE plansmbtorturetestsuite('echo.udp', 'dc:local', '//$SERVER/whatever') # Local tests -for t in smb4torture_testsuites("local."): +for t in smbtorture4_testsuites("local."): #The local.resolve test needs a name to look up using real system (not emulated) name routines plansmbtorturetestsuite(t, "none", "ncalrpc:localhost") @@ -294,11 +294,11 @@ for f in sorted(os.listdir(os.path.join(samba4srcdir, "../pidl/tests"))): # DNS tests planpythontestsuite("fl2003dc", "samba.tests.dns") -for t in smb4torture_testsuites("dns_internal."): +for t in smbtorture4_testsuites("dns_internal."): plansmbtorturetestsuite(t, "dc:local", '//$SERVER/whavever') # Local tests -for t in smb4torture_testsuites("dlz_bind9."): +for t in smbtorture4_testsuites("dlz_bind9."): #The dlz_bind9 tests needs to look at the DNS database plansmbtorturetestsuite(t, "chgdcpass:local", "ncalrpc:localhost") @@ -328,7 +328,7 @@ plantestsuite("samba4.blackbox.gentest(dc)", "dc", [os.path.join(samba4srcdir, " plantestsuite("samba4.blackbox.wbinfo(dc:local)", "dc:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$USERNAME', '$PASSWORD', "dc"]) plantestsuite("samba4.blackbox.wbinfo(s4member:local)", "s4member:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', "s4member"]) plantestsuite("samba4.blackbox.chgdcpass", "chgdcpass", [os.path.join(bbdir, "test_chgdcpass.sh"), '$SERVER', "CHGDCPASS\$", '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", '$SELFTEST_PREFIX/chgdcpass', smbclient]) -plantestsuite_loadlist("samba4.rpc.echo against NetBIOS alias", "dc", [valgrindify(smb4torture), "$LISTOPT", 'ncacn_np:$NETBIOSALIAS', '-U$DOMAIN/$USERNAME%$PASSWORD', 'rpc.echo']) +plantestsuite_loadlist("samba4.rpc.echo against NetBIOS alias", "dc", [valgrindify(smbtorture4), "$LISTOPT", 'ncacn_np:$NETBIOSALIAS', '-U$DOMAIN/$USERNAME%$PASSWORD', 'rpc.echo']) # Tests using the "Simple" NTVFS backend for t in ["base.rw1"]: @@ -385,8 +385,8 @@ plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', wb_opts = ["--option=\"torture:strict mode=no\"", "--option=\"torture:timelimit=1\"", "--option=\"torture:winbindd_separator=/\"", "--option=\"torture:winbindd_netbios_name=$SERVER\"", "--option=\"torture:winbindd_netbios_domain=$DOMAIN\""] -winbind_struct_tests = smb4torture_testsuites("winbind.struct") -winbind_ndr_tests = smb4torture_testsuites("winbind.ndr") +winbind_struct_tests = smbtorture4_testsuites("winbind.struct") +winbind_ndr_tests = smbtorture4_testsuites("winbind.ndr") for env in ["plugin_s4_dc", "dc", "s4member"]: for t in winbind_struct_tests: plansmbtorturetestsuite(t, env, wb_opts + ['//_none_/_none_']) -- 1.7.9.5 From 33052c563f6e672978812ec8c3421d5673f80b63 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 11:51:19 -0800 Subject: [PATCH 47/62] source4.selftest.tests: Rename plansmbtorturesuite() to plansmbtorture4suite(). (cherry picked from commit 868c8c058306b66fb3baa4a36bfe91d6461805d5) --- source4/selftest/tests.py | 120 ++++++++++++++++++++++----------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 82e7836..bbfeaac 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -36,7 +36,7 @@ else: nmblookup = binpath('nmblookup4') smbclient = binpath('smbclient4') -def plansmbtorturetestsuite(name, env, options, modname=None): +def plansmbtorture4testsuite(name, env, options, modname=None): if modname is None: modname = "samba4.%s" % name if isinstance(options, list): @@ -88,7 +88,7 @@ for options in ['-U"$USERNAME%$PASSWORD"']: "%s/test_ldb.sh ldapi $PREFIX_ABS/dc/private/ldapi %s" % (bbdir, options)) for t in smbtorture4_testsuites("ldap."): - plansmbtorturetestsuite(t, "dc", '-U"$USERNAME%$PASSWORD" //$SERVER_IP/_none_') + plansmbtorture4testsuite(t, "dc", '-U"$USERNAME%$PASSWORD" //$SERVER_IP/_none_') ldbdir = os.path.join(srcdir(), "lib/ldb") # Don't run LDB tests when using system ldb, as we won't have ldbtest installed @@ -127,8 +127,8 @@ for bindoptions in ["seal,padcheck"] + validate_list + ["bigendian"]: else: raise AssertionError("invalid transport %r"% transport) for t in tests: - plansmbtorturetestsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s with %s" % (t, transport, bindoptions)) - plansmbtorturetestsuite('rpc.samba3-sharesec', env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=torture:share=tmp'], "samba4.rpc.samba3.sharesec on %s with %s" % (transport, bindoptions)) + plansmbtorture4testsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s with %s" % (t, transport, bindoptions)) + plansmbtorture4testsuite('rpc.samba3-sharesec', env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=torture:share=tmp'], "samba4.rpc.samba3.sharesec on %s with %s" % (transport, bindoptions)) #Plugin S4 DC tests (confirms named pipe auth forwarding). This can be expanded once kerberos is supported in the plugin DC # @@ -136,14 +136,14 @@ for bindoptions in ["seal,padcheck"] + validate_list + ["bigendian"]: for t in ncacn_np_tests: env = "plugin_s4_dc" transport = "ncacn_np" - plansmbtorturetestsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions)) + plansmbtorture4testsuite(t, env, ["%s:$SERVER[%s]" % (transport, bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions)) for bindoptions in [""] + validate_list + ["bigendian"]: for t in auto_rpc_tests: - plansmbtorturetestsuite(t, "dc", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions)) + plansmbtorture4testsuite(t, "dc", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s with %s" % (t, bindoptions)) t = "rpc.countcalls" -plansmbtorturetestsuite(t, "dc:local", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s" % t) +plansmbtorture4testsuite(t, "dc:local", ["$SERVER[%s]" % bindoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s" % t) for transport in ["ncacn_np", "ncacn_ip_tcp"]: env = "dc" @@ -154,17 +154,17 @@ for transport in ["ncacn_np", "ncacn_ip_tcp"]: else: raise AssertionError("Invalid transport %r" % transport) for t in tests: - plansmbtorturetestsuite(t, env, ["%s:$SERVER" % transport, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s" % (t, transport)) + plansmbtorture4testsuite(t, env, ["%s:$SERVER" % transport, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.%s on %s" % (t, transport)) # Tests for the DFS referral calls implementation for t in smbtorture4_testsuites("dfs."): - plansmbtorturetestsuite(t, "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') # Tests for the NET API (net.api.become.dc tested below against all the roles) net_tests = filter(lambda x: "net.api.become.dc" not in x, smbtorture4_testsuites("net.")) for t in net_tests: - plansmbtorturetestsuite(t, "dc", '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate) + plansmbtorture4testsuite(t, "dc", '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate) # Tests for session keys and encryption of RPC pipes # FIXME: Integrate these into a single smbtorture test @@ -185,7 +185,7 @@ for env in ["dc", "s3dc"]: "-k no --option=gensec:spnego=no --option=clientntlmv2auth=yes", "-k no --option=usespnego=no"]: name = "rpc.lsa.secrets on %s with with %s" % (transport, ntlmoptions) - plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.%s" % name) + plansmbtorture4testsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.%s" % name) plantestsuite("samba.blackbox.pdbtest", "%s:local" % env, [os.path.join(bbdir, "test_pdbtest.sh"), '$SERVER', "$PREFIX", smbclient, '$SMB_CONF_PATH', configuration]) transports = ["ncacn_np", "ncacn_ip_tcp"] @@ -193,22 +193,22 @@ transports = ["ncacn_np", "ncacn_ip_tcp"] #Kerberos varies between functional levels, so it is important to check this on all of them for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc", "plugin_s4_dc"]: transport = "ncacn_np" - plansmbtorturetestsuite('rpc.pac', env, ["%s:$SERVER[]" % (transport, ), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.pac on %s" % (transport,)) - plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME', 'rpc.lsa.secrets'], "samba4.rpc.lsa.secrets on %s with Kerberos" % (transport,)) - plansmbtorturetestsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use target principal" % (transport,)) - plansmbtorturetestsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=gensec:fake_gssapi_krb5=yes", '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login" % transport) - plansmbtorturetestsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:fake_gssapi_krb5=yes', '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login, use target principal" % transport) + plansmbtorture4testsuite('rpc.pac', env, ["%s:$SERVER[]" % (transport, ), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.pac on %s" % (transport,)) + plansmbtorture4testsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME', 'rpc.lsa.secrets'], "samba4.rpc.lsa.secrets on %s with Kerberos" % (transport,)) + plansmbtorture4testsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport, ), '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use target principal" % (transport,)) + plansmbtorture4testsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=gensec:fake_gssapi_krb5=yes", '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login" % transport) + plansmbtorture4testsuite('rpc.lsa.secrets.none*', env, ["%s:$SERVER" % transport, '-k', 'yes', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', "--option=clientusespnegoprincipal=yes", '--option=gensec:fake_gssapi_krb5=yes', '--option=gensec:gssapi_krb5=no', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.rpc.lsa.secrets on %s with Kerberos - use Samba3 style login, use target principal" % transport) for transport in transports: - plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[]" % (transport,), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s" % (transport, )) + plansmbtorture4testsuite('rpc.echo', env, ["%s:$SERVER[]" % (transport,), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s" % (transport, )) # Echo tests test bulk Kerberos encryption of DCE/RPC for bindoptions in ["connect", "spnego", "spnego,sign", "spnego,seal"] + validate_list + ["padcheck", "bigendian", "bigendian,seal"]: echooptions = "--option=socket:testnonblock=True --option=torture:quick=yes -k yes" - plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), echooptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, echooptions)) - plansmbtorturetestsuite("net.api.become.dc", env, '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate) + plansmbtorture4testsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), echooptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, echooptions)) + plansmbtorture4testsuite("net.api.become.dc", env, '$SERVER[%s] -U$USERNAME%%$PASSWORD -W$DOMAIN' % validate) for bindoptions in ["sign", "seal"]: - plansmbtorturetestsuite('rpc.backupkey', "dc", ["ncacn_np:$SERVER[%s]" % ( bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.backupkey with %s" % (bindoptions)) + plansmbtorture4testsuite('rpc.backupkey', "dc", ["ncacn_np:$SERVER[%s]" % ( bindoptions), '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.backupkey with %s" % (bindoptions)) for transport in transports: for bindoptions in ["sign", "seal"]: @@ -226,15 +226,15 @@ for transport in transports: env = "dc:local" else: env = "dc" - plansmbtorturetestsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, ntlmoptions)) + plansmbtorture4testsuite('rpc.echo', env, ["%s:$SERVER[%s]" % (transport, bindoptions), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on %s with %s and %s" % (transport, bindoptions, ntlmoptions)) -plansmbtorturetestsuite('rpc.echo', "dc", ['ncacn_np:$SERVER[smb2]', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on ncacn_np over smb2") +plansmbtorture4testsuite('rpc.echo', "dc", ['ncacn_np:$SERVER[smb2]', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.rpc.echo on ncacn_np over smb2") -plansmbtorturetestsuite('ntp.signd', "dc:local", ['ncacn_np:$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.ntp.signd") +plansmbtorture4testsuite('ntp.signd', "dc:local", ['ncacn_np:$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], "samba4.ntp.signd") nbt_tests = smbtorture4_testsuites("nbt.") for t in nbt_tests: - plansmbtorturetestsuite(t, "dc", "//$SERVER/_none_ -U\"$USERNAME%$PASSWORD\"") + plansmbtorture4testsuite(t, "dc", "//$SERVER/_none_ -U\"$USERNAME%$PASSWORD\"") # Tests against the NTVFS POSIX backend ntvfsargs = ["--option=torture:sharedelay=10000", "--option=torture:oplocktimeout=3", "--option=torture:writetimeupdatedelay=50000"] @@ -249,34 +249,34 @@ netapi = smbtorture4_testsuites("netapi.") libsmbclient = smbtorture4_testsuites("libsmbclient.") for t in base + raw + smb2 + netapi + libsmbclient: - plansmbtorturetestsuite(t, "dc", ['//$SERVER/tmp', '-U$USERNAME%$PASSWORD'] + ntvfsargs) + plansmbtorture4testsuite(t, "dc", ['//$SERVER/tmp', '-U$USERNAME%$PASSWORD'] + ntvfsargs) -plansmbtorturetestsuite("raw.qfileinfo.ipc", "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') +plansmbtorture4testsuite("raw.qfileinfo.ipc", "dc", '//$SERVER/ipc\$ -U$USERNAME%$PASSWORD') for t in smbtorture4_testsuites("rap."): - plansmbtorturetestsuite(t, "dc", '//$SERVER/IPC\$ -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "dc", '//$SERVER/IPC\$ -U$USERNAME%$PASSWORD') # Tests against the NTVFS CIFS backend for t in base + raw: - plansmbtorturetestsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=yes'] + ntvfsargs, modname="samba4.ntvfs.cifs.krb5.%s" % t) + plansmbtorture4testsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=yes'] + ntvfsargs, modname="samba4.ntvfs.cifs.krb5.%s" % t) # Test NTVFS CIFS backend with S4U2Self and S4U2Proxy t = "base.unlink" -plansmbtorturetestsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t) -plansmbtorturetestsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=yes'] + ntvfsargs, "samba4.ntvfs.cifs.krb5.%s" % t) -plansmbtorturetestsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t) +plansmbtorture4testsuite(t, "dc", ['//$NETBIOSNAME/cifs', '-U$USERNAME%$PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t) +plansmbtorture4testsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=yes'] + ntvfsargs, "samba4.ntvfs.cifs.krb5.%s" % t) +plansmbtorture4testsuite(t, "rpc_proxy", ['//$NETBIOSNAME/cifs_to_dc', '-U$DC_USERNAME%$DC_PASSWORD', '--kerberos=no'] + ntvfsargs, "samba4.ntvfs.cifs.ntlm.%s" % t) -plansmbtorturetestsuite('echo.udp', 'dc:local', '//$SERVER/whatever') +plansmbtorture4testsuite('echo.udp', 'dc:local', '//$SERVER/whatever') # Local tests for t in smbtorture4_testsuites("local."): #The local.resolve test needs a name to look up using real system (not emulated) name routines - plansmbtorturetestsuite(t, "none", "ncalrpc:localhost") + plansmbtorture4testsuite(t, "none", "ncalrpc:localhost") # Confirm these tests with the system iconv too for t in ["local.convert_string_handle", "local.convert_string", "local.ndr"]: options = "ncalrpc: --option='iconv:use_builtin_handlers=false'" - plansmbtorturetestsuite(t, "none", options, + plansmbtorture4testsuite(t, "none", options, modname="samba4.%s.system.iconv" % t) tdbtorture4 = binpath("tdbtorture") @@ -285,7 +285,7 @@ if os.path.exists(tdbtorture4): else: skiptestsuite("tdb.stress", "Using system TDB, tdbtorture not available") -plansmbtorturetestsuite("drs.unit", "none", "ncalrpc:") +plansmbtorture4testsuite("drs.unit", "none", "ncalrpc:") # Pidl tests for f in sorted(os.listdir(os.path.join(samba4srcdir, "../pidl/tests"))): @@ -295,12 +295,12 @@ for f in sorted(os.listdir(os.path.join(samba4srcdir, "../pidl/tests"))): # DNS tests planpythontestsuite("fl2003dc", "samba.tests.dns") for t in smbtorture4_testsuites("dns_internal."): - plansmbtorturetestsuite(t, "dc:local", '//$SERVER/whavever') + plansmbtorture4testsuite(t, "dc:local", '//$SERVER/whavever') # Local tests for t in smbtorture4_testsuites("dlz_bind9."): #The dlz_bind9 tests needs to look at the DNS database - plansmbtorturetestsuite(t, "chgdcpass:local", "ncalrpc:localhost") + plansmbtorture4testsuite(t, "chgdcpass:local", "ncalrpc:localhost") planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal"); @@ -332,18 +332,18 @@ plantestsuite_loadlist("samba4.rpc.echo against NetBIOS alias", "dc", [valgrindi # Tests using the "Simple" NTVFS backend for t in ["base.rw1"]: - plansmbtorturetestsuite(t, "dc", ["//$SERVER/simple", '-U$USERNAME%$PASSWORD'], modname="samba4.ntvfs.simple.%s" % t) + plansmbtorture4testsuite(t, "dc", ["//$SERVER/simple", '-U$USERNAME%$PASSWORD'], modname="samba4.ntvfs.simple.%s" % t) # Domain S4member Tests -plansmbtorturetestsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.echo against s4member server with local creds") -plansmbtorturetestsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], "samba4.rpc.echo against s4member server with domain creds") -plansmbtorturetestsuite('rpc.samr', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr against s4member server with local creds") -plansmbtorturetestsuite('rpc.samr.users', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.users against s4member server with local creds",) -plansmbtorturetestsuite('rpc.samr.passwords', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.passwords against s4member server with local creds") +plansmbtorture4testsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.echo against s4member server with local creds") +plansmbtorture4testsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], "samba4.rpc.echo against s4member server with domain creds") +plansmbtorture4testsuite('rpc.samr', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr against s4member server with local creds") +plansmbtorture4testsuite('rpc.samr.users', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.users against s4member server with local creds",) +plansmbtorture4testsuite('rpc.samr.passwords', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.passwords against s4member server with local creds") plantestsuite("samba4.blackbox.smbclient against s4member server with local creds", "s4member", [os.path.join(samba4srcdir, "client/tests/test_smbclient.sh"), '$NETBIOSNAME', '$USERNAME', '$PASSWORD', '$NETBIOSNAME', '$PREFIX', smbclient]) # RPC Proxy -plansmbtorturetestsuite("rpc.echo", "rpc_proxy", ['ncacn_ip_tcp:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], modname="samba4.rpc.echo against rpc proxy with domain creds") +plansmbtorture4testsuite("rpc.echo", "rpc_proxy", ['ncacn_ip_tcp:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], modname="samba4.rpc.echo against rpc proxy with domain creds") # Tests SMB signing for mech in [ @@ -355,7 +355,7 @@ for mech in [ for signing in ["--signing=on", "--signing=required"]: signoptions = "%s %s" % (mech, signing) name = "smb.signing on with %s" % signoptions - plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], modname="samba4.%s" % name) + plansmbtorture4testsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], modname="samba4.%s" % name) for mech in [ "-k no", @@ -364,10 +364,10 @@ for mech in [ "-k yes"]: signoptions = "%s --signing=off" % mech name = "smb.signing disabled on with %s" % signoptions - plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name) - plansmbtorturetestsuite('base.xcopy', "s3member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name) - plansmbtorturetestsuite('base.xcopy', "plugin_s4_dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], "samba4.%s" % name) - plansmbtorturetestsuite('base.xcopy', "plugin_s4_dc", + plansmbtorture4testsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name) + plansmbtorture4testsuite('base.xcopy', "s3member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s domain-creds" % name) + plansmbtorture4testsuite('base.xcopy', "plugin_s4_dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$USERNAME%$PASSWORD'], "samba4.%s" % name) + plansmbtorture4testsuite('base.xcopy', "plugin_s4_dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s administrator" % name) plantestsuite("samba4.blackbox.bogusdomain", "s3member", ["testprogs/blackbox/bogus.sh", "$NETBIOSNAME", "xcopy_share", '$USERNAME', '$PASSWORD', '$DC_USERNAME', '$DC_PASSWORD', smbclient]) @@ -376,11 +376,11 @@ for mech in [ "-k no --option=usespnego=no", "-k no --option=gensec:spengo=no"]: signoptions = "%s --signing=off" % mech - plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], modname="samba4.smb.signing on with %s local-creds" % signoptions) + plansmbtorture4testsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], modname="samba4.smb.signing on with %s local-creds" % signoptions) -plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=yes', '-U%'], modname="samba4.smb.signing --signing=yes anon") -plansmbtorturetestsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=required', '-U%'], modname="samba4.smb.signing --signing=required anon") -plansmbtorturetestsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=no', '-U%'], modname="samba4.smb.signing --signing=no anon") +plansmbtorture4testsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=yes', '-U%'], modname="samba4.smb.signing --signing=yes anon") +plansmbtorture4testsuite('base.xcopy', "dc", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=required', '-U%'], modname="samba4.smb.signing --signing=required anon") +plansmbtorture4testsuite('base.xcopy', "s4member", ['//$NETBIOSNAME/xcopy_share', '-k', 'no', '--signing=no', '-U%'], modname="samba4.smb.signing --signing=no anon") wb_opts = ["--option=\"torture:strict mode=no\"", "--option=\"torture:timelimit=1\"", "--option=\"torture:winbindd_separator=/\"", "--option=\"torture:winbindd_netbios_name=$SERVER\"", "--option=\"torture:winbindd_netbios_domain=$DOMAIN\""] @@ -389,10 +389,10 @@ winbind_struct_tests = smbtorture4_testsuites("winbind.struct") winbind_ndr_tests = smbtorture4_testsuites("winbind.ndr") for env in ["plugin_s4_dc", "dc", "s4member"]: for t in winbind_struct_tests: - plansmbtorturetestsuite(t, env, wb_opts + ['//_none_/_none_']) + plansmbtorture4testsuite(t, env, wb_opts + ['//_none_/_none_']) for t in winbind_ndr_tests: - plansmbtorturetestsuite(t, env, wb_opts + ['//_none_/_none_']) + plansmbtorture4testsuite(t, env, wb_opts + ['//_none_/_none_']) nsstest4 = binpath("nsstest") for env in ["plugin_s4_dc", "dc", "s4member", "s3dc", "s3member", "member"]: @@ -493,13 +493,13 @@ planoldpythontestsuite("vampire_dc", "repl_schema", # This makes sure we test the rid allocation code t = "rpc.samr.large-dc" -plansmbtorturetestsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname=("samba4.%s.one" % t)) -plansmbtorturetestsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s.two" % t) +plansmbtorture4testsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname=("samba4.%s.one" % t)) +plansmbtorture4testsuite(t, "vampire_dc", ['$SERVER', '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.%s.two" % t) # some RODC testing for env in ['rodc']: - plansmbtorturetestsuite('rpc.echo', env, ['ncacn_np:$SERVER', "-k", "yes", '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo") - plansmbtorturetestsuite('rpc.echo', "%s:local" % env, ['ncacn_np:$SERVER', "-k", "yes", '-P', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo") + plansmbtorture4testsuite('rpc.echo', env, ['ncacn_np:$SERVER', "-k", "yes", '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo") + plansmbtorture4testsuite('rpc.echo', "%s:local" % env, ['ncacn_np:$SERVER', "-k", "yes", '-P', '--workgroup=$DOMAIN'], modname="samba4.rpc.echo") plantestsuite("samba4.blackbox.provision-backend", "none", ["PYTHON=%s" % python, os.path.join(samba4srcdir, "setup/tests/blackbox_provision-backend.sh"), '$PREFIX/provision']) # Test renaming the DC -- 1.7.9.5 From 47ed1a273b2ec2ce747b94127df9129bfc2be71c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:03:32 -0800 Subject: [PATCH 48/62] selftesthelpers: Share code for listing smbtorture4 tests. (cherry picked from commit 4c4d3c86f0430d38f78d16dcb5d365b577ef4227) --- selftest/selftesthelpers.py | 13 +++++++++++++ source3/selftest/tests.py | 18 ++++++------------ source4/selftest/tests.py | 13 ------------- 3 files changed, 19 insertions(+), 25 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 4517030..b22330a 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -183,3 +183,16 @@ samba4srcdir = source4dir() bbdir = os.path.join(srcdir(), "testprogs/blackbox") configuration = "--configfile=$SMB_CONF_PATH" +smbtorture4 = binpath("smbtorture4") +smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() + +def plansmbtorture4testsuite(name, env, options, modname=None): + if modname is None: + modname = "samba4.%s" % name + if isinstance(options, list): + options = " ".join(options) + cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) + plantestsuite_loadlist(modname, env, cmdline) + +def smbtorture4_testsuites(prefix): + return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index b07b690..acf45e4 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -22,7 +22,6 @@ import os, sys sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest"))) from selftesthelpers import * import subprocess -smb4torture = binpath("smbtorture4") samba3srcdir = srcdir() + "/source3" configuration = "--configfile=$SMB_CONF_PATH" scriptdir=os.path.join(samba3srcdir, "../script/tests") @@ -48,17 +47,12 @@ torture_options.append("--format=subunit") if os.getenv("SELFTEST_QUICK"): torture_options.append("--option=torture:quick=yes") -smb4torture_testsuite_list = subprocess.Popen([smb4torture, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() +smbtorture4 += " " + " ".join(torture_options) -smb4torture += " " + " ".join(torture_options) - -sub = subprocess.Popen("%s --version 2> /dev/null" % smb4torture, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True) +sub = subprocess.Popen("%s --version 2> /dev/null" % smbtorture4, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True) sub.communicate("") -smb4torture_possible = (sub.returncode == 0) - +smbtorture4_possible = (sub.returncode == 0) -def smb4torture_testsuites(prefix): - return filter(lambda x: x.startswith(prefix), smb4torture_testsuite_list) def plansmbtorturetestsuite(name, env, options, description=''): target = "samba3" @@ -67,8 +61,8 @@ def plansmbtorturetestsuite(name, env, options, description=''): else: modname = "%s.%s %s" % (target, name, description) - cmdline = "%s $LISTOPT %s --target=%s %s" % (valgrindify(smb4torture), options, target, name) - if smb4torture_possible: + cmdline = "%s $LISTOPT %s --target=%s %s" % (valgrindify(smbtorture4), options, target, name) + if smbtorture4_possible: plantestsuite_loadlist(modname, env, cmdline) @@ -283,7 +277,7 @@ raw = ["raw.acls", "raw.chkpath", "raw.close", "raw.composite", "raw.context", " "raw.bench-oplock", "raw.bench-lock", "raw.bench-open", "raw.bench-tcon", "raw.samba3checkfsp", "raw.samba3closeerr", "raw.samba3oplocklogoff"] -smb2 = smb4torture_testsuites("smb2.") +smb2 = smbtorture4_testsuites("smb2.") rpc = ["rpc.authcontext", "rpc.samba3.bind", "rpc.samba3.srvsvc", "rpc.samba3.sharesec", "rpc.samba3.spoolss", "rpc.samba3.wkssvc", "rpc.samba3.winreg", diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index bbfeaac..7f10cd1 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -25,8 +25,6 @@ import subprocess samba4srcdir = source4dir() samba4bindir = bindir() -smbtorture4 = binpath("smbtorture4") -smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() validate = os.getenv("VALIDATE", "") if validate: validate_list = [validate] @@ -36,17 +34,6 @@ else: nmblookup = binpath('nmblookup4') smbclient = binpath('smbclient4') -def plansmbtorture4testsuite(name, env, options, modname=None): - if modname is None: - modname = "samba4.%s" % name - if isinstance(options, list): - options = " ".join(options) - cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) - plantestsuite_loadlist(modname, env, cmdline) - -def smbtorture4_testsuites(prefix): - return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) - subprocess.call([smbtorture4, "-V"], stdout=sys.stderr) bbdir = os.path.join(srcdir(), "testprogs/blackbox") -- 1.7.9.5 From 1fd54cd80d4ffd973cf0b5b0d5b3af3ad70e0e20 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:09:45 -0800 Subject: [PATCH 49/62] selftest/selftesthelpers.py: Share configuration variable, strip whitespace. (cherry picked from commit 6bcb25673bdc249f5a49ded912d90bc84b13809d) --- selftest/selftesthelpers.py | 2 ++ source3/selftest/tests.py | 42 ++++++++++++++++++------------------------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index b22330a..ae0a756 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -186,6 +186,7 @@ configuration = "--configfile=$SMB_CONF_PATH" smbtorture4 = binpath("smbtorture4") smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() + def plansmbtorture4testsuite(name, env, options, modname=None): if modname is None: modname = "samba4.%s" % name @@ -194,5 +195,6 @@ def plansmbtorture4testsuite(name, env, options, modname=None): cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) plantestsuite_loadlist(modname, env, cmdline) + def smbtorture4_testsuites(prefix): return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index acf45e4..c54f154 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1,21 +1,21 @@ #!/usr/bin/python -# This script generates a list of testsuites that should be run as part of +# This script generates a list of testsuites that should be run as part of # the Samba 3 test suite. -# The output of this script is parsed by selftest.pl, which then decides -# which of the tests to actually run. It will, for example, skip all tests +# The output of this script is parsed by selftest.pl, which then decides +# which of the tests to actually run. It will, for example, skip all tests # listed in selftest/skip or only run a subset during "make quicktest". -# The idea is that this script outputs all of the tests of Samba 3, not -# just those that are known to pass, and list those that should be skipped -# or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it -# very easy to see what functionality is still missing in Samba 3 and makes -# it possible to run the testsuite against other servers, such as Samba 4 or +# The idea is that this script outputs all of the tests of Samba 3, not +# just those that are known to pass, and list those that should be skipped +# or are known to fail in selftest/skip or selftest/samba3-knownfail. This makes it +# very easy to see what functionality is still missing in Samba 3 and makes +# it possible to run the testsuite against other servers, such as Samba 4 or # Windows that have a different set of features. -# The syntax for a testsuite is "-- TEST --" on a single line, followed -# by the name of the test, the environment it needs and the command to run, all -# three separated by newlines. All other lines in the output are considered +# The syntax for a testsuite is "-- TEST --" on a single line, followed +# by the name of the test, the environment it needs and the command to run, all +# three separated by newlines. All other lines in the output are considered # comments. import os, sys @@ -23,8 +23,7 @@ sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../ from selftesthelpers import * import subprocess samba3srcdir = srcdir() + "/source3" -configuration = "--configfile=$SMB_CONF_PATH" -scriptdir=os.path.join(samba3srcdir, "../script/tests") +scriptdir = os.path.join(samba3srcdir, "../script/tests") smbclient = binpath('smbclient3') wbinfo = binpath('wbinfo') @@ -34,10 +33,10 @@ ntlm_auth = binpath('ntlm_auth3') dbwrap_tool = binpath('dbwrap_tool') vfstest = binpath('vfstest') -torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", +torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", "--basedir=$SELFTEST_TMPDIR", '--option="torture:winbindd_netbios_name=$SERVER"', - '--option="torture:winbindd_netbios_domain=$DOMAIN"', + '--option="torture:winbindd_netbios_domain=$DOMAIN"', '--option=torture:sharedelay=100000', '--option=torture:writetimeupdatedelay=500000' ] @@ -178,7 +177,7 @@ for env in ["s3dc", "member", "s3member"]: plantestsuite( "samba3.wbinfo_sids2xids.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_wbinfo_sids2xids.sh")]) - + plantestsuite( "samba3.ntlm_auth.diagnostics(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_diagnostics.sh"), ntlm_auth, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration]) @@ -391,9 +390,9 @@ for s in signseal_options: options_list = ["", "-e"] for options in options_list: - plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local", + plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"), - "$PREFIX/ktest/krb5_ccache-2", + "$PREFIX/ktest/krb5_ccache-2", smbclient, "$SERVER", options, configuration]) plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local", @@ -423,9 +422,4 @@ for e in endianness_options: options = binding_string + " -U$USERNAME%$PASSWORD" plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e)) -test = 'rpc.epmapper' -env = 's3dc:local' -binding_string = 'ncalrpc:' -options = binding_string + " -U$USERNAME%$PASSWORD" - -plansmbtorturetestsuite(test, env, options, 'over ncalrpc') +plansmbtorturetestsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc') -- 1.7.9.5 From 4e05414454aa3c3867d733c6e002c4075c959077 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:12:54 -0800 Subject: [PATCH 50/62] selftest/selftesthelpers: Share environment handling for extra smbtorture options. (cherry picked from commit fcb7926ce544a8d4b0e5aa6577fe21712b38bb53) --- selftest/selftesthelpers.py | 11 +++++++++++ source3/selftest/tests.py | 15 +++++++-------- source4/selftest/tests.py | 12 ++++++------ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index ae0a756..6640290 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -198,3 +198,14 @@ def plansmbtorture4testsuite(name, env, options, modname=None): def smbtorture4_testsuites(prefix): return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) + + +def get_env_torture_options(): + ret = [] + if not os.getenv("SELFTEST_VERBOSE"): + ret.append("--option=torture:progress=no") + if os.getenv("SELFTEST_QUICK"): + ret.append("--option=torture:quick=yes") + return ret + + diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index c54f154..8f9e842 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -33,18 +33,17 @@ ntlm_auth = binpath('ntlm_auth3') dbwrap_tool = binpath('dbwrap_tool') vfstest = binpath('vfstest') -torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", - "--basedir=$SELFTEST_TMPDIR", +torture_options = [configuration, + '--maximum-runtime=$SELFTEST_MAXTIME', + '--basedir=$SELFTEST_TMPDIR', '--option="torture:winbindd_netbios_name=$SERVER"', '--option="torture:winbindd_netbios_domain=$DOMAIN"', '--option=torture:sharedelay=100000', - '--option=torture:writetimeupdatedelay=500000' ] + '--option=torture:writetimeupdatedelay=500000', + '--format=subunit' + ] -if not os.getenv("SELFTEST_VERBOSE"): - torture_options.append("--option=torture:progress=no") -torture_options.append("--format=subunit") -if os.getenv("SELFTEST_QUICK"): - torture_options.append("--option=torture:quick=yes") +torture_options.extend(env_get_torture_options()) smbtorture4 += " " + " ".join(torture_options) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 7f10cd1..b36f43b 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -38,12 +38,12 @@ subprocess.call([smbtorture4, "-V"], stdout=sys.stderr) bbdir = os.path.join(srcdir(), "testprogs/blackbox") -torture_options = [configuration, "--maximum-runtime=$SELFTEST_MAXTIME", "--target=samba4", "--basedir=$SELFTEST_TMPDIR"] -if not os.getenv("SELFTEST_VERBOSE"): - torture_options.append("--option=torture:progress=no") -torture_options.append("--format=subunit") -if os.getenv("SELFTEST_QUICK"): - torture_options.append("--option=torture:quick=yes") +torture_options = [configuration, + "--maximum-runtime=$SELFTEST_MAXTIME", + "--target=samba4", + "--basedir=$SELFTEST_TMPDIR", + "--format=subunit"] +torture_options.extend(get_env_torture_options()) smbtorture4 += " " + " ".join(torture_options) print >>sys.stderr, "OPTIONS %s" % " ".join(torture_options) -- 1.7.9.5 From 85e5a5f91d9b40b2780eb4681fab98cf976323b8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:38:32 -0800 Subject: [PATCH 51/62] selftest: Move determining of smbtorture4 options to selftesthelpers. (cherry picked from commit 8237e2727da0d04b82cb3cf644dd337a4c77fe34) --- selftest/selftesthelpers.py | 30 ++++++++++++++++++------------ source3/selftest/tests.py | 2 +- source4/selftest/tests.py | 17 +++++++---------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 6640290..40efc1f 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -179,6 +179,15 @@ def planpythontestsuite(env, module, name=None, extra_path=[]): plantestsuite_idlist(name, env, args) +def get_env_torture_options(): + ret = [] + if not os.getenv("SELFTEST_VERBOSE"): + ret.append("--option=torture:progress=no") + if os.getenv("SELFTEST_QUICK"): + ret.append("--option=torture:quick=yes") + return ret + + samba4srcdir = source4dir() bbdir = os.path.join(srcdir(), "testprogs/blackbox") configuration = "--configfile=$SMB_CONF_PATH" @@ -186,26 +195,23 @@ configuration = "--configfile=$SMB_CONF_PATH" smbtorture4 = binpath("smbtorture4") smbtorture4_testsuite_list = subprocess.Popen([smbtorture4, "--list-suites"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate("")[0].splitlines() +smbtorture4_options = [ + configuration, + "--maximum-runtime=$SELFTEST_MAXTIME", + "--basedir=$SELFTEST_TMPDIR", + "--format=subunit" + ] + get_env_torture_options() -def plansmbtorture4testsuite(name, env, options, modname=None): + +def plansmbtorture4testsuite(name, env, options, target, modname=None): if modname is None: modname = "samba4.%s" % name if isinstance(options, list): options = " ".join(options) + options += " " + " ".join(smbtorture4_options + ["--target=%s" % target]) cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) plantestsuite_loadlist(modname, env, cmdline) def smbtorture4_testsuites(prefix): return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) - - -def get_env_torture_options(): - ret = [] - if not os.getenv("SELFTEST_VERBOSE"): - ret.append("--option=torture:progress=no") - if os.getenv("SELFTEST_QUICK"): - ret.append("--option=torture:quick=yes") - return ret - - diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 8f9e842..7f56ad5 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -43,7 +43,7 @@ torture_options = [configuration, '--format=subunit' ] -torture_options.extend(env_get_torture_options()) +torture_options.extend(get_env_torture_options()) smbtorture4 += " " + " ".join(torture_options) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index b36f43b..08236c8 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -20,9 +20,16 @@ import os, sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../../selftest")) +import selftesthelpers from selftesthelpers import * import subprocess +print >>sys.stderr, "OPTIONS %s" % " ".join(smbtorture4_options) + +def plansmbtorture4testsuite(name, env, options, modname=None): + return selftesthelpers.plansmbtorture4testsuite(name, env, options, + target='samba4', modname=modname) + samba4srcdir = source4dir() samba4bindir = bindir() validate = os.getenv("VALIDATE", "") @@ -38,16 +45,6 @@ subprocess.call([smbtorture4, "-V"], stdout=sys.stderr) bbdir = os.path.join(srcdir(), "testprogs/blackbox") -torture_options = [configuration, - "--maximum-runtime=$SELFTEST_MAXTIME", - "--target=samba4", - "--basedir=$SELFTEST_TMPDIR", - "--format=subunit"] -torture_options.extend(get_env_torture_options()) -smbtorture4 += " " + " ".join(torture_options) - -print >>sys.stderr, "OPTIONS %s" % " ".join(torture_options) - # Simple tests for LDAP and CLDAP for options in ['-U"$USERNAME%$PASSWORD" --option=socket:testnonblock=true', '-U"$USERNAME%$PASSWORD"', '-U"$USERNAME%$PASSWORD" -k yes', '-U"$USERNAME%$PASSWORD" -k no', '-U"$USERNAME%$PASSWORD" -k no --sign', '-U"$USERNAME%$PASSWORD" -k no --encrypt', '-U"$USERNAME%$PASSWORD" -k yes --encrypt', '-U"$USERNAME%$PASSWORD" -k yes --sign']: plantestsuite("samba4.ldb.ldap with options %s(dc)" % options, "dc", "%s/test_ldb.sh ldap $SERVER %s" % (bbdir, options)) -- 1.7.9.5 From 73b0c3b3f08ffce1dcbf735b17e634fc154f3aee Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:51:54 -0800 Subject: [PATCH 52/62] selftesthelpers: Add function for printing smbtorture4 version. (cherry picked from commit 58345820c078f79fe7f67b8e6f947691f7237641) --- selftest/selftesthelpers.py | 12 +++++++++++- source3/selftest/tests.py | 5 +---- source4/selftest/tests.py | 3 +-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 40efc1f..ff5bbd7 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -203,12 +203,22 @@ smbtorture4_options = [ ] + get_env_torture_options() +def print_smbtorture4_version(): + """Print the version of Samba smbtorture4 comes from. + + :return: Whether smbtorture4 was successfully run + """ + sub = subprocess.Popen([smbtorture4, "-V"], stdout=sys.stderr) + sub.communicate("") + return (sub.returncode == 0) + + def plansmbtorture4testsuite(name, env, options, target, modname=None): if modname is None: modname = "samba4.%s" % name if isinstance(options, list): options = " ".join(options) - options += " " + " ".join(smbtorture4_options + ["--target=%s" % target]) + options = " ".join(smbtorture4_options + ["--target=%s" % target]) + " " + options cmdline = "%s $LISTOPT %s %s" % (valgrindify(smbtorture4), options, name) plantestsuite_loadlist(modname, env, cmdline) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 7f56ad5..fd12b7d 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -21,7 +21,6 @@ import os, sys sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest"))) from selftesthelpers import * -import subprocess samba3srcdir = srcdir() + "/source3" scriptdir = os.path.join(samba3srcdir, "../script/tests") @@ -47,9 +46,7 @@ torture_options.extend(get_env_torture_options()) smbtorture4 += " " + " ".join(torture_options) -sub = subprocess.Popen("%s --version 2> /dev/null" % smbtorture4, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True) -sub.communicate("") -smbtorture4_possible = (sub.returncode == 0) +smbtorture4_possible = print_smbtorture4_version() def plansmbtorturetestsuite(name, env, options, description=''): diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 08236c8..422be2b 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -22,7 +22,6 @@ import os, sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../../selftest")) import selftesthelpers from selftesthelpers import * -import subprocess print >>sys.stderr, "OPTIONS %s" % " ".join(smbtorture4_options) @@ -41,7 +40,7 @@ else: nmblookup = binpath('nmblookup4') smbclient = binpath('smbclient4') -subprocess.call([smbtorture4, "-V"], stdout=sys.stderr) +print_smbtorture4_version() bbdir = os.path.join(srcdir(), "testprogs/blackbox") -- 1.7.9.5 From 69b9ee2e024b98f03d32ed9ee20107b3b85a60d1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:52:55 -0800 Subject: [PATCH 53/62] source4.selftest.tests: Add suffix for smbclient4/nmblookup4. (cherry picked from commit ea5e2b56c14072eeaa785d05f1da4d439667e8b6) --- source4/selftest/tests.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index 422be2b..aab1ff9 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -37,8 +37,8 @@ if validate: else: validate_list = [] -nmblookup = binpath('nmblookup4') -smbclient = binpath('smbclient4') +nmblookup4 = binpath('nmblookup4') +smbclient4 = binpath('smbclient4') print_smbtorture4_version() @@ -169,7 +169,7 @@ for env in ["dc", "s3dc"]: "-k no --option=usespnego=no"]: name = "rpc.lsa.secrets on %s with with %s" % (transport, ntlmoptions) plansmbtorture4testsuite('rpc.lsa.secrets', env, ["%s:$SERVER[]" % (transport), ntlmoptions, '-U$USERNAME%$PASSWORD', '--workgroup=$DOMAIN', '--option=gensec:target_hostname=$NETBIOSNAME'], "samba4.%s" % name) - plantestsuite("samba.blackbox.pdbtest", "%s:local" % env, [os.path.join(bbdir, "test_pdbtest.sh"), '$SERVER', "$PREFIX", smbclient, '$SMB_CONF_PATH', configuration]) + plantestsuite("samba.blackbox.pdbtest", "%s:local" % env, [os.path.join(bbdir, "test_pdbtest.sh"), '$SERVER', "$PREFIX", smbclient4, '$SMB_CONF_PATH', configuration]) transports = ["ncacn_np", "ncacn_ip_tcp"] @@ -293,24 +293,24 @@ planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal"); # work correctly. for env in ["s3member", "s4member", "dc", "chgdcpass"]: - plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) + plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient4]) -plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient]) -plantestsuite("samba4.blackbox.pkinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_pkinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) -plantestsuite("samba4.blackbox.kinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) -plantestsuite("samba4.blackbox.kinit(fl2000dc:local)", "fl2000dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "arcfour-hmac-md5", smbclient, configuration]) -plantestsuite("samba4.blackbox.kinit(fl2008r2dc:local)", "fl2008r2dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient, configuration]) +plantestsuite("samba4.blackbox.samba_tool(dc:local)", "dc:local", [os.path.join(samba4srcdir, "utils/tests/test_samba_tool.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient4]) +plantestsuite("samba4.blackbox.pkinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_pkinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient4, configuration]) +plantestsuite("samba4.blackbox.kinit(dc:local)", "dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient4, configuration]) +plantestsuite("samba4.blackbox.kinit(fl2000dc:local)", "fl2000dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "arcfour-hmac-md5", smbclient4, configuration]) +plantestsuite("samba4.blackbox.kinit(fl2008r2dc:local)", "fl2008r2dc:local", [os.path.join(bbdir, "test_kinit.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", smbclient4, configuration]) plantestsuite("samba4.blackbox.ktpass(dc)", "dc", [os.path.join(bbdir, "test_ktpass.sh"), '$PREFIX']) -plantestsuite("samba4.blackbox.passwords(dc:local)", "dc:local", [os.path.join(bbdir, "test_passwords.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX", smbclient]) -plantestsuite("samba4.blackbox.export.keytab(dc:local)", "dc:local", [os.path.join(bbdir, "test_export_keytab.sh"), '$SERVER', '$USERNAME', '$REALM', '$DOMAIN', "$PREFIX", smbclient]) +plantestsuite("samba4.blackbox.passwords(dc:local)", "dc:local", [os.path.join(bbdir, "test_passwords.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$REALM', '$DOMAIN', "$PREFIX", smbclient4]) +plantestsuite("samba4.blackbox.export.keytab(dc:local)", "dc:local", [os.path.join(bbdir, "test_export_keytab.sh"), '$SERVER', '$USERNAME', '$REALM', '$DOMAIN', "$PREFIX", smbclient4]) plantestsuite("samba4.blackbox.cifsdd(dc)", "dc", [os.path.join(samba4srcdir, "client/tests/test_cifsdd.sh"), '$SERVER', '$USERNAME', '$PASSWORD', "$DOMAIN"]) -plantestsuite("samba4.blackbox.nmblookup(dc)", "dc", [os.path.join(samba4srcdir, "utils/tests/test_nmblookup.sh"), '$NETBIOSNAME', '$NETBIOSALIAS', '$SERVER', '$SERVER_IP', nmblookup]) +plantestsuite("samba4.blackbox.nmblookup(dc)", "dc", [os.path.join(samba4srcdir, "utils/tests/test_nmblookup.sh"), '$NETBIOSNAME', '$NETBIOSALIAS', '$SERVER', '$SERVER_IP', nmblookup4]) plantestsuite("samba4.blackbox.locktest(dc)", "dc", [os.path.join(samba4srcdir, "torture/tests/test_locktest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', '$PREFIX']) plantestsuite("samba4.blackbox.masktest", "dc", [os.path.join(samba4srcdir, "torture/tests/test_masktest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', '$PREFIX']) plantestsuite("samba4.blackbox.gentest(dc)", "dc", [os.path.join(samba4srcdir, "torture/tests/test_gentest.sh"), '$SERVER', '$USERNAME', '$PASSWORD', '$DOMAIN', "$PREFIX"]) plantestsuite("samba4.blackbox.wbinfo(dc:local)", "dc:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$USERNAME', '$PASSWORD', "dc"]) plantestsuite("samba4.blackbox.wbinfo(s4member:local)", "s4member:local", [os.path.join(samba4srcdir, "../nsswitch/tests/test_wbinfo.sh"), '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', "s4member"]) -plantestsuite("samba4.blackbox.chgdcpass", "chgdcpass", [os.path.join(bbdir, "test_chgdcpass.sh"), '$SERVER', "CHGDCPASS\$", '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", '$SELFTEST_PREFIX/chgdcpass', smbclient]) +plantestsuite("samba4.blackbox.chgdcpass", "chgdcpass", [os.path.join(bbdir, "test_chgdcpass.sh"), '$SERVER', "CHGDCPASS\$", '$REALM', '$DOMAIN', '$PREFIX', "aes256-cts-hmac-sha1-96", '$SELFTEST_PREFIX/chgdcpass', smbclient4]) plantestsuite_loadlist("samba4.rpc.echo against NetBIOS alias", "dc", [valgrindify(smbtorture4), "$LISTOPT", 'ncacn_np:$NETBIOSALIAS', '-U$DOMAIN/$USERNAME%$PASSWORD', 'rpc.echo']) # Tests using the "Simple" NTVFS backend @@ -323,7 +323,7 @@ plansmbtorture4testsuite('rpc.echo', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$D plansmbtorture4testsuite('rpc.samr', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr against s4member server with local creds") plansmbtorture4testsuite('rpc.samr.users', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.users against s4member server with local creds",) plansmbtorture4testsuite('rpc.samr.passwords', "s4member", ['ncacn_np:$NETBIOSNAME', '-U$NETBIOSNAME/$USERNAME%$PASSWORD'], "samba4.rpc.samr.passwords against s4member server with local creds") -plantestsuite("samba4.blackbox.smbclient against s4member server with local creds", "s4member", [os.path.join(samba4srcdir, "client/tests/test_smbclient.sh"), '$NETBIOSNAME', '$USERNAME', '$PASSWORD', '$NETBIOSNAME', '$PREFIX', smbclient]) +plantestsuite("samba4.blackbox.smbclient against s4member server with local creds", "s4member", [os.path.join(samba4srcdir, "client/tests/test_smbclient.sh"), '$NETBIOSNAME', '$USERNAME', '$PASSWORD', '$NETBIOSNAME', '$PREFIX', smbclient4]) # RPC Proxy plansmbtorture4testsuite("rpc.echo", "rpc_proxy", ['ncacn_ip_tcp:$NETBIOSNAME', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'], modname="samba4.rpc.echo against rpc proxy with domain creds") @@ -353,7 +353,7 @@ for mech in [ plansmbtorture4testsuite('base.xcopy', "plugin_s4_dc", ['//$NETBIOSNAME/xcopy_share', signoptions, '-U$DC_USERNAME%$DC_PASSWORD'], "samba4.%s administrator" % name) -plantestsuite("samba4.blackbox.bogusdomain", "s3member", ["testprogs/blackbox/bogus.sh", "$NETBIOSNAME", "xcopy_share", '$USERNAME', '$PASSWORD', '$DC_USERNAME', '$DC_PASSWORD', smbclient]) +plantestsuite("samba4.blackbox.bogusdomain", "s3member", ["testprogs/blackbox/bogus.sh", "$NETBIOSNAME", "xcopy_share", '$USERNAME', '$PASSWORD', '$DC_USERNAME', '$DC_PASSWORD', smbclient4]) for mech in [ "-k no", "-k no --option=usespnego=no", @@ -490,7 +490,7 @@ plantestsuite("samba4.blackbox.renamedc.sh", "none", ["PYTHON=%s" % python, os.p # Demote the vampire DC, it must be the last test on the VAMPIRE DC for env in ['vampire_dc', 'promoted_vampire_dc']: - plantestsuite("samba4.blackbox.samba_tool_demote(%s)" % env, env, [os.path.join(samba4srcdir, "utils/tests/test_demote.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', '$DC_SERVER', '$PREFIX/%s' % env, smbclient]) + plantestsuite("samba4.blackbox.samba_tool_demote(%s)" % env, env, [os.path.join(samba4srcdir, "utils/tests/test_demote.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', '$DC_SERVER', '$PREFIX/%s' % env, smbclient4]) # check the databases are all OK. PLEASE LEAVE THIS AS THE LAST TEST for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc", 'vampire_dc', 'promoted_vampire_dc']: plantestsuite("samba4.blackbox.dbcheck(%s)" % env, env + ":local" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck.sh"), '$PREFIX/provision', configuration]) -- 1.7.9.5 From dcacc8f108c055f86ec9113b6ec597e9954e1b8c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 13:56:30 -0800 Subject: [PATCH 54/62] source3.selftest.tests: Remove tabs. (cherry picked from commit a841f0fced7abfb0f6d98390c07becdf49a91af5) --- source3/selftest/tests.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index fd12b7d..d85ef4b 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -107,24 +107,24 @@ t = "CLEANUP3" plantestsuite("samba3.smbtorture_s3.plain(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"]) local_tests=[ - "LOCAL-SUBSTITUTE", - "LOCAL-GENCACHE", - "LOCAL-TALLOC-DICT", - "LOCAL-BASE64", - "LOCAL-RBTREE", - "LOCAL-MEMCACHE", - "LOCAL-STREAM-NAME", - "LOCAL-WBCLIENT", - "LOCAL-string_to_sid", - "LOCAL-binary_to_sid", - "LOCAL-DBTRANS", - "LOCAL-TEVENT-SELECT", - "LOCAL-CONVERT-STRING", - "LOCAL-CONV-AUTH-INFO", - "LOCAL-IDMAP-TDB-COMMON", - "LOCAL-hex_encode_buf", - "LOCAL-sprintf_append", - "LOCAL-remove_duplicate_addrs2"] + "LOCAL-SUBSTITUTE", + "LOCAL-GENCACHE", + "LOCAL-TALLOC-DICT", + "LOCAL-BASE64", + "LOCAL-RBTREE", + "LOCAL-MEMCACHE", + "LOCAL-STREAM-NAME", + "LOCAL-WBCLIENT", + "LOCAL-string_to_sid", + "LOCAL-binary_to_sid", + "LOCAL-DBTRANS", + "LOCAL-TEVENT-SELECT", + "LOCAL-CONVERT-STRING", + "LOCAL-CONV-AUTH-INFO", + "LOCAL-IDMAP-TDB-COMMON", + "LOCAL-hex_encode_buf", + "LOCAL-sprintf_append", + "LOCAL-remove_duplicate_addrs2"] for t in local_tests: plantestsuite("samba3.smbtorture_s3.%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "-e"]) -- 1.7.9.5 From 198aa971e58e712ded3e1fadac1b281b01709718 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 14:00:07 -0800 Subject: [PATCH 55/62] source3.selftest.tests: Add suffix for smbclient3/ntlm_auth3. (cherry picked from commit efb27e29dadf58d2dec651ca3a0c108b4cf515ae) --- source3/selftest/tests.py | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index d85ef4b..f353e90 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -24,11 +24,11 @@ from selftesthelpers import * samba3srcdir = srcdir() + "/source3" scriptdir = os.path.join(samba3srcdir, "../script/tests") -smbclient = binpath('smbclient3') +smbclient3 = binpath('smbclient3') wbinfo = binpath('wbinfo') net = binpath('net') smbtorture3 = binpath('smbtorture3') -ntlm_auth = binpath('ntlm_auth3') +ntlm_auth3 = binpath('ntlm_auth3') dbwrap_tool = binpath('dbwrap_tool') vfstest = binpath('vfstest') @@ -158,14 +158,14 @@ plantestsuite("samba.vfstest.acl", "s3dc:local", [os.path.join(samba3srcdir, "sc for options in ["--option=clientusespnego=no", " --option=clientntlmv2auth=no --option=clientlanmanauth=yes --max-protocol=LANMAN2", ""]: env = "s3dc" - plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration, options]) + plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) %s" % (env, options), env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration, options]) for env in ["s3dc", "member", "s3member", "dc", "s4member"]: - plantestsuite("samba3.blackbox.smbclient_machine_auth.plain (%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient, configuration]) + plantestsuite("samba3.blackbox.smbclient_machine_auth.plain (%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_machine_auth.sh"), '$SERVER', smbclient3, configuration]) for env in ["s3dc", "member", "s3member"]: - plantestsuite("samba3.blackbox.smbclient_auth.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient, configuration]) - plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER\\\\$USERNAME', '$PASSWORD', smbclient, configuration]) + plantestsuite("samba3.blackbox.smbclient_auth.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$DC_USERNAME', '$DC_PASSWORD', smbclient3, configuration]) + plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$SERVER\\\\$USERNAME', '$PASSWORD', smbclient3, configuration]) for t in tests: plantestsuite("samba3.wbinfo_s3.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_wbinfo_s3.sh"), t]) @@ -176,44 +176,44 @@ for env in ["s3dc", "member", "s3member"]: plantestsuite( "samba3.ntlm_auth.diagnostics(%s:local)" % env, "%s:local" % env, - [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_diagnostics.sh"), ntlm_auth, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration]) + [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_diagnostics.sh"), ntlm_auth3, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration]) - plantestsuite("samba3.ntlm_auth.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_s3.sh"), valgrindify(python), samba3srcdir, ntlm_auth, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration]) + plantestsuite("samba3.ntlm_auth.(%s:local)" % env, "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_s3.sh"), valgrindify(python), samba3srcdir, ntlm_auth3, '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', configuration]) env = "s3member" t = "--krb5auth=$DOMAIN\\\\$DC_USERNAME%$DC_PASSWORD" plantestsuite("samba3.wbinfo_s3.(%s:local).%s" % (env, t), "%s:local" % env, [os.path.join(samba3srcdir, "script/tests/test_wbinfo_s3.sh"), t]) -plantestsuite("samba3.ntlm_auth.krb5(ktest:local) old ccache", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth, '$PREFIX/ktest/krb5_ccache-2', '$SERVER', configuration]) +plantestsuite("samba3.ntlm_auth.krb5(ktest:local) old ccache", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth3, '$PREFIX/ktest/krb5_ccache-2', '$SERVER', configuration]) -plantestsuite("samba3.ntlm_auth.krb5(ktest:local)", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth, '$PREFIX/ktest/krb5_ccache-3', '$SERVER', configuration]) +plantestsuite("samba3.ntlm_auth.krb5(ktest:local)", "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_ntlm_auth_krb5.sh"), valgrindify(python), samba3srcdir, ntlm_auth3, '$PREFIX/ktest/krb5_ccache-3', '$SERVER', configuration]) for env in ["maptoguest", "simpleserver"]: - plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) local creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"]) + plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) local creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbclient3, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"]) env = "maptoguest" -plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) bad username" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', 'notmy$USERNAME', '$PASSWORD', smbclient, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"]) +plantestsuite("samba3.blackbox.smbclient_auth.plain (%s) bad username" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_auth.sh"), '$SERVER', '$SERVER_IP', 'notmy$USERNAME', '$PASSWORD', smbclient3, configuration + " --option=clientntlmv2auth=no --option=clientlanmanauth=yes"]) # plain for env in ["s3dc"]: - plantestsuite("samba3.blackbox.smbclient_s3.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration]) + plantestsuite("samba3.blackbox.smbclient_s3.plain (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, wbinfo, configuration]) for env in ["member", "s3member"]: - plantestsuite("samba3.blackbox.smbclient_s3.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration]) + plantestsuite("samba3.blackbox.smbclient_s3.plain (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, wbinfo, configuration]) for env in ["s3dc"]: - plantestsuite("samba3.blackbox.smbclient_s3.sign (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "--signing=required"]) + plantestsuite("samba3.blackbox.smbclient_s3.sign (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$DC_USERNAME', '$DC_PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, wbinfo, configuration, "--signing=required"]) for env in ["member", "s3member"]: - plantestsuite("samba3.blackbox.smbclient_s3.sign (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "--signing=required"]) + plantestsuite("samba3.blackbox.smbclient_s3.sign (%s) member creds" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$SERVER', '$SERVER\\\\$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, wbinfo, configuration, "--signing=required"]) for env in ["s3dc"]: # encrypted - plantestsuite("samba3.blackbox.smbclient_s3.crypt (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient, wbinfo, configuration, "-e"]) + plantestsuite("samba3.blackbox.smbclient_s3.crypt (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_s3.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$USERID', '$LOCAL_PATH', '$PREFIX', smbclient3, wbinfo, configuration, "-e"]) # Test smbclient/tarmode - plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient, configuration]) + plantestsuite("samba3.blackbox.smbclient_tarmode (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_smbclient_tarmode.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', '$PREFIX', smbclient3, configuration]) #TODO encrypted against member, with member creds, and with DC creds plantestsuite("samba3.blackbox.net.misc", "s3dc:local", @@ -389,27 +389,27 @@ for options in options_list: plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"), "$PREFIX/ktest/krb5_ccache-2", - smbclient, "$SERVER", options, configuration]) + smbclient3, "$SERVER", options, configuration]) plantestsuite("samba3.blackbox.smbclient_krb5 old ccache %s" % options, "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_krb5.sh"), "$PREFIX/ktest/krb5_ccache-2", - smbclient, "$SERVER", options, configuration]) + smbclient3, "$SERVER", options, configuration]) plantestsuite("samba3.blackbox.smbclient_large_file %s" % options, "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"), "$PREFIX/ktest/krb5_ccache-3", - smbclient, "$SERVER", "$PREFIX", options, "-k " + configuration]) + smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration]) plantestsuite("samba3.blackbox.smbclient_posix_large %s krb5" % options, "ktest:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"), "$PREFIX/ktest/krb5_ccache-3", - smbclient, "$SERVER", "$PREFIX", options, "-k " + configuration]) + smbclient3, "$SERVER", "$PREFIX", options, "-k " + configuration]) plantestsuite("samba3.blackbox.smbclient_posix_large %s NTLM" % options, "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_smbclient_posix_large.sh"), "none", - smbclient, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration]) + smbclient3, "$SERVER", "$PREFIX", options, "-U$USERNAME%$PASSWORD " + configuration]) for e in endianness_options: for a in auth_options: -- 1.7.9.5 From e37d2027dea1bc3b7688887cf6ad1eb2681093e8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 14:06:47 -0800 Subject: [PATCH 56/62] source3.selftests.tests: Use common plansmbtorture4testsuite() function. (cherry picked from commit fd607e0a9eefb79130941e244435980afbbb4bf7) --- source3/selftest/tests.py | 106 +++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 56 deletions(-) diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index f353e90..80a093f 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -20,6 +20,7 @@ import os, sys sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest"))) +import selftesthelpers from selftesthelpers import * samba3srcdir = srcdir() + "/source3" scriptdir = os.path.join(samba3srcdir, "../script/tests") @@ -32,33 +33,26 @@ ntlm_auth3 = binpath('ntlm_auth3') dbwrap_tool = binpath('dbwrap_tool') vfstest = binpath('vfstest') -torture_options = [configuration, - '--maximum-runtime=$SELFTEST_MAXTIME', - '--basedir=$SELFTEST_TMPDIR', - '--option="torture:winbindd_netbios_name=$SERVER"', - '--option="torture:winbindd_netbios_domain=$DOMAIN"', - '--option=torture:sharedelay=100000', - '--option=torture:writetimeupdatedelay=500000', - '--format=subunit' - ] - -torture_options.extend(get_env_torture_options()) - -smbtorture4 += " " + " ".join(torture_options) +smbtorture4_options.extend([ + '--option="torture:winbindd_netbios_name=$SERVER"', + '--option="torture:winbindd_netbios_domain=$DOMAIN"', + '--option=torture:sharedelay=100000', + '--option=torture:writetimeupdatedelay=500000', + ]) smbtorture4_possible = print_smbtorture4_version() - -def plansmbtorturetestsuite(name, env, options, description=''): - target = "samba3" +def plansmbtorture4testsuite(name, env, options, description=''): if description == '': - modname = "%s.%s" % (target, name) + modname = "samba3.%s" % (name, ) else: - modname = "%s.%s %s" % (target, name, description) + modname = "samba3.%s %s" % (name, description) - cmdline = "%s $LISTOPT %s --target=%s %s" % (valgrindify(smbtorture4), options, target, name) if smbtorture4_possible: - plantestsuite_loadlist(modname, env, cmdline) + selftesthelpers.plansmbtorture4testsuite( + name, env, options, target='samba3', modname=modname) + else: + skiptestsuite(name, "smbtorture4 is not available") plantestsuite("samba3.blackbox.success", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_success.sh")]) @@ -307,49 +301,49 @@ tests= base + raw + smb2 + rpc + unix + local + winbind + rap + nbt + libsmbclie for t in tests: if t == "base.delaywrite": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --maximum-runtime=900') elif t == "rap.sam": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD --option=doscharset=ISO-8859-1') elif t == "winbind.pac": - plansmbtorturetestsuite(t, "s3member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account") + plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --realm=$REALM --machine-pass --option=torture:addc=$DC_SERVER', description="machine account") elif t == "unix.whoami": - plansmbtorturetestsuite(t, "member:local", '//$SERVER/tmp --machine-pass', description="machine account") - plansmbtorturetestsuite(t, "s3member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account") + plansmbtorture4testsuite(t, "member:local", '//$SERVER/tmp --machine-pass', description="machine account") + plansmbtorture4testsuite(t, "s3member:local", '//$SERVER/tmp --machine-pass --option=torture:addc=$DC_SERVER', description="machine account") for env in ["s3dc", "member"]: - plansmbtorturetestsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD') - plansmbtorturetestsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection') + plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME%$DC_PASSWORD') + plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U%', description='anonymous connection') for env in ["plugin_s4_dc", "s3member"]: - plansmbtorturetestsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER') - plansmbtorturetestsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection') - plansmbtorturetestsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection') + plansmbtorture4testsuite(t, env, '//$SERVER/tmp -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER') + plansmbtorture4testsuite(t, env, '//$SERVER/tmp -k yes -U$DC_USERNAME@$REALM%$DC_PASSWORD --option=torture:addc=$DC_SERVER', description='kerberos connection') + plansmbtorture4testsuite(t, env, '//$SERVER/tmpguest -U% --option=torture:addc=$DC_SERVER', description='anonymous connection') elif t == "raw.samba3posixtimedlock": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/plugin_s4_dc/share') elif t == "raw.chkpath": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD') elif t == "raw.samba3hide" or t == "raw.samba3checkfsp" or t == "raw.samba3closeerr": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "simpleserver", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD') elif t == "raw.session" or t == "smb2.session": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain') - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'plain') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmpenc -U$USERNAME%$PASSWORD', 'enc') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k no -U$USERNAME%$PASSWORD', 'ntlm') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -k yes -U$USERNAME%$PASSWORD', 'krb5') elif t == "rpc.lsa": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ') - plansmbtorturetestsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ') - plansmbtorturetestsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ') + plansmbtorture4testsuite(t, "s3dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD', 'over ncacn_np ') + plansmbtorture4testsuite(t, "plugin_s4_dc", 'ncacn_ip_tcp:$SERVER_IP -U$USERNAME%$PASSWORD', 'over ncacn_ip_tcp ') elif t == "smb2.durable-open" or t == "smb2.durable-v2-open": - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD') else: - plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') - plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') + plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD') test = 'rpc.lsa.lookupsids' @@ -361,7 +355,7 @@ for s in signseal_options: for a in auth_options: binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e) options = binding_string + " -U$USERNAME%$PASSWORD" - plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e)) + plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_np with [%s%s%s] ' % (a, s, e)) plantestsuite("samba3.blackbox.rpcclient over ncacn_np with [%s%s%s] " % (a, s, e), "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_rpcclient.sh"), "none", options, configuration]) @@ -371,10 +365,10 @@ for s in signseal_options: a = "" binding_string = "ncacn_np:$SERVER[%s%s%s]" % (a, s, e) options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-2" - plansmbtorturetestsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e)) + plansmbtorture4testsuite(test, "ktest", options, 'krb5 with old ccache ncacn_np with [%s%s%s] ' % (a, s, e)) options = binding_string + " -k yes --krb5-ccache=$PREFIX/ktest/krb5_ccache-3" - plansmbtorturetestsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e)) + plansmbtorture4testsuite(test, "ktest", options, 'krb5 ncacn_np with [%s%s%s] ' % (a, s, e)) auth_options2 = ["krb5", "spnego,krb5"] for a in auth_options2: @@ -416,6 +410,6 @@ for e in endianness_options: for s in signseal_options: binding_string = "ncacn_ip_tcp:$SERVER_IP[%s%s%s]" % (a, s, e) options = binding_string + " -U$USERNAME%$PASSWORD" - plansmbtorturetestsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e)) + plansmbtorture4testsuite(test, "s3dc", options, 'over ncacn_ip_tcp with [%s%s%s] ' % (a, s, e)) -plansmbtorturetestsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc') +plansmbtorture4testsuite('rpc.epmapper', 's3dc:local', 'ncalrpc: -U$USERNAME%$PASSWORD', 'over ncalrpc') -- 1.7.9.5 From c6f89311d806f699c93de56f2e1b052982a08ce2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 14:14:42 -0800 Subject: [PATCH 57/62] selftesthelpers: Simplify detection of tap2subunit. (cherry picked from commit 05dc5a39a6ad4b1ffafc904faea3e8e40f6f5cde) --- selftest/selftesthelpers.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index ff5bbd7..00fa8aa 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -64,15 +64,17 @@ else: python = os.getenv("PYTHON", "python") -#Set a default value, overridden if we find a working one on the system +# Set a default value, overridden if we find a working one on the system tap2subunit = "PYTHONPATH=%s/lib/subunit/python:%s/lib/testtools %s %s/lib/subunit/filters/tap2subunit" % (srcdir(), srcdir(), python, srcdir()) -sub = subprocess.Popen("tap2subunit 2> /dev/null", stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True) +sub = subprocess.Popen("tap2subunit", stdin=subprocess.PIPE, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) sub.communicate("") if sub.returncode == 0: - cmd = "echo -ne \"1..1\nok 1 # skip doesn't seem to work yet\n\" | tap2subunit 2> /dev/null | grep skip" - sub = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) + cmd = "echo -ne \"1..1\nok 1 # skip doesn't seem to work yet\n\" | tap2subunit | grep skip" + sub = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, + stderr=subprocess.PIPE, shell=True) if sub.returncode == 0: tap2subunit = "tap2subunit" -- 1.7.9.5 From e061a97d3a802ae5b124e40e23878ba6b5d8bab1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 14:40:09 -0800 Subject: [PATCH 58/62] source4.selftest.tests: Add FIXME about database verification. (cherry picked from commit 1190f385f72f68f22277c8b380f2d4c461c413a4) --- source4/selftest/tests.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py index aab1ff9..ea09071 100755 --- a/source4/selftest/tests.py +++ b/source4/selftest/tests.py @@ -491,6 +491,8 @@ plantestsuite("samba4.blackbox.renamedc.sh", "none", ["PYTHON=%s" % python, os.p # Demote the vampire DC, it must be the last test on the VAMPIRE DC for env in ['vampire_dc', 'promoted_vampire_dc']: plantestsuite("samba4.blackbox.samba_tool_demote(%s)" % env, env, [os.path.join(samba4srcdir, "utils/tests/test_demote.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', '$DC_SERVER', '$PREFIX/%s' % env, smbclient4]) +# TODO: Verifying the databases really should be a part of the +# environment teardown. # check the databases are all OK. PLEASE LEAVE THIS AS THE LAST TEST for env in ["dc", "fl2000dc", "fl2003dc", "fl2008r2dc", 'vampire_dc', 'promoted_vampire_dc']: plantestsuite("samba4.blackbox.dbcheck(%s)" % env, env + ":local" , ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck.sh"), '$PREFIX/provision', configuration]) -- 1.7.9.5 From 34e0a19b188644446f1460ed0c70d50242e7067e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 15:53:57 -0800 Subject: [PATCH 59/62] selftest: Add --random-order option. (cherry picked from commit 67dd28f3605db4cbdc5feacc1121ec3d7dd075a6) --- selftest/selftest.pl | 10 +++++++++- selftest/wscript | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/selftest/selftest.pl b/selftest/selftest.pl index b636910..c063f32 100755 --- a/selftest/selftest.pl +++ b/selftest/selftest.pl @@ -42,6 +42,7 @@ my $opt_quick = 0; my $opt_socket_wrapper = 0; my $opt_socket_wrapper_pcap = undef; my $opt_socket_wrapper_keep_pcap = undef; +my $opt_random_order = 0; my $opt_one = 0; my @opt_exclude = (); my @opt_include = (); @@ -236,8 +237,9 @@ my $result = GetOptions ( 'ldap:s' => \$ldap, 'resetup-environment' => \$opt_resetup_env, 'testlist=s' => \@testlists, + 'random-order' => \$opt_random_order, 'load-list=s' => \$opt_load_list, - 'binary-mapping=s' => \$opt_binary_mapping + 'binary-mapping=s' => \$opt_binary_mapping ); exit(1) if (not $result); @@ -825,6 +827,12 @@ sub teardown_env($) # This 'global' file needs to be empty when we start unlink("$prefix_abs/dns_host_file"); +if ($opt_random_order) { + require List::Util; + my @newtodo = List::Util::shuffle(@todo); + @todo = @newtodo; +} + if ($opt_testenv) { my $testenv_name = $ENV{SELFTEST_TESTENV}; $testenv_name = $testenv_default unless defined($testenv_name); diff --git a/selftest/wscript b/selftest/wscript index 9ea2f6f..a5b2e53 100644 --- a/selftest/wscript +++ b/selftest/wscript @@ -69,6 +69,8 @@ def set_options(opt): gr.add_option('--socket-wrapper-keep-pcap', help=("create a pcap file for all individual test"), action="store_true", dest='SOCKET_WRAPPER_KEEP_PCAP', default=False) + gr.add_option('--random-order', dest='RANDOM_ORDER', default=False, + action="store_true", help="Run testsuites in random order") def configure(conf): conf.env.SELFTEST_PREFIX = Options.options.SELFTEST_PREFIX @@ -134,6 +136,8 @@ def cmd_testonly(opt): env.OPTIONS += ' --socket-wrapper-pcap' if Options.options.SOCKET_WRAPPER_KEEP_PCAP: env.OPTIONS += ' --socket-wrapper-keep-pcap' + if Options.options.RANDOM_ORDER: + env.OPTIONS += ' --random-order' if os.environ.get('RUN_FROM_BUILD_FARM') is not None: env.FILTER_OPTIONS = '${FILTER_XFAIL} --strip-passed-output' else: -- 1.7.9.5 From 6fbfe0b935b4b4b5bd04bbceed92b93350a06d5b Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 26 Oct 2012 17:31:40 -0800 Subject: [PATCH 60/62] selftesthelpers: Fix detection of tap2subunit. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Sat Oct 27 16:57:49 CEST 2012 on sn-devel-104 (cherry picked from commit 13269923585888912e2433c15c0ca010a9897595) --- selftest/selftesthelpers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 00fa8aa..8d36356 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -18,6 +18,7 @@ # three separated by newlines. All other lines in the output are considered # comments. +import errno import os import subprocess import sys @@ -68,7 +69,7 @@ python = os.getenv("PYTHON", "python") tap2subunit = "PYTHONPATH=%s/lib/subunit/python:%s/lib/testtools %s %s/lib/subunit/filters/tap2subunit" % (srcdir(), srcdir(), python, srcdir()) sub = subprocess.Popen("tap2subunit", stdin=subprocess.PIPE, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) sub.communicate("") if sub.returncode == 0: @@ -210,7 +211,12 @@ def print_smbtorture4_version(): :return: Whether smbtorture4 was successfully run """ - sub = subprocess.Popen([smbtorture4, "-V"], stdout=sys.stderr) + try: + sub = subprocess.Popen([smbtorture4, "-V"], stdout=sys.stderr) + except OSError, e: + if e.errno == errno.ENOENT: + return False + raise sub.communicate("") return (sub.returncode == 0) -- 1.7.9.5 From 429259f362a807756f3f49397a04b175e4692739 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 27 Oct 2012 05:23:57 -0800 Subject: [PATCH 61/62] source3.selftest: Move more variables to be in common. (cherry picked from commit 66980989e5b28490cd7b04b576cf39d26f183b90) --- selftest/selftesthelpers.py | 10 ++++++++++ source3/selftest/tests.py | 7 +------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 8d36356..34d0e07 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -29,6 +29,9 @@ def srcdir(): def source4dir(): return os.path.normpath(os.path.join(srcdir(), "source4")) +def source3dir(): + return os.path.normpath(os.path.join(srcdir(), "source3")) + def bindir(): return os.path.normpath(os.getenv("BINDIR", "./bin")) @@ -192,6 +195,7 @@ def get_env_torture_options(): samba4srcdir = source4dir() +samba3srcdir = source3dir() bbdir = os.path.join(srcdir(), "testprogs/blackbox") configuration = "--configfile=$SMB_CONF_PATH" @@ -233,3 +237,9 @@ def plansmbtorture4testsuite(name, env, options, target, modname=None): def smbtorture4_testsuites(prefix): return filter(lambda x: x.startswith(prefix), smbtorture4_testsuite_list) + + +smbclient3 = binpath('smbclient3') +smbtorture3 = binpath('smbtorture3') +ntlm_auth3 = binpath('ntlm_auth3') +net = binpath('net') diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 80a093f..02311c4 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -22,14 +22,9 @@ import os, sys sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest"))) import selftesthelpers from selftesthelpers import * -samba3srcdir = srcdir() + "/source3" scriptdir = os.path.join(samba3srcdir, "../script/tests") -smbclient3 = binpath('smbclient3') wbinfo = binpath('wbinfo') -net = binpath('net') -smbtorture3 = binpath('smbtorture3') -ntlm_auth3 = binpath('ntlm_auth3') dbwrap_tool = binpath('dbwrap_tool') vfstest = binpath('vfstest') @@ -218,7 +213,7 @@ plantestsuite("samba3.blackbox.net.local.registry", "s3dc:local", scriptdir, "$SMB_CONF_PATH", net, configuration]) plantestsuite("samba3.blackbox.net.registry.check", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_net_registry_check.sh"), - scriptdir, "$SMB_CONF_PATH", net, configuration,dbwrap_tool]) + scriptdir, "$SMB_CONF_PATH", net, configuration, dbwrap_tool]) plantestsuite("samba3.blackbox.net.rpc.registry", "s3dc", [os.path.join(samba3srcdir, "script/tests/test_net_registry.sh"), scriptdir, "$SMB_CONF_PATH", net, configuration, 'rpc']) -- 1.7.9.5 From 48eba8837713c7dec40b0b87b872d60c39a6b7e6 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 27 Oct 2012 05:31:06 -0800 Subject: [PATCH 62/62] source3.selftest: Move last variables to selftesthelpers. Autobuild-User(master): Jelmer Vernooij Autobuild-Date(master): Sat Oct 27 19:08:42 CEST 2012 on sn-devel-104 (cherry picked from commit a7b8d0260a55959c72614251db880fed04a48316) --- selftest/selftesthelpers.py | 5 +++++ source3/selftest/tests.py | 14 ++++---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 34d0e07..cdbe975 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -243,3 +243,8 @@ smbclient3 = binpath('smbclient3') smbtorture3 = binpath('smbtorture3') ntlm_auth3 = binpath('ntlm_auth3') net = binpath('net') +scriptdir = os.path.join(srcdir(), "script/tests") + +wbinfo = binpath('wbinfo') +dbwrap_tool = binpath('dbwrap_tool') +vfstest = binpath('vfstest') diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 02311c4..dac86e9 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -22,12 +22,6 @@ import os, sys sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(__file__), "../../selftest"))) import selftesthelpers from selftesthelpers import * -scriptdir = os.path.join(samba3srcdir, "../script/tests") - -wbinfo = binpath('wbinfo') -dbwrap_tool = binpath('dbwrap_tool') -vfstest = binpath('vfstest') - smbtorture4_options.extend([ '--option="torture:winbindd_netbios_name=$SERVER"', '--option="torture:winbindd_netbios_domain=$DOMAIN"', @@ -57,7 +51,7 @@ plantestsuite("samba3.local_s3", "s3dc:local", [os.path.join(samba3srcdir, "scri plantestsuite("samba3.blackbox.registry.upgrade", "s3dc:local", [os.path.join(samba3srcdir, "script/tests/test_registry_upgrade.sh"), net, dbwrap_tool]) -tests=[ "FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9", +tests = ["FDPASS", "LOCK1", "LOCK2", "LOCK3", "LOCK4", "LOCK5", "LOCK6", "LOCK7", "LOCK9", "UNLINK", "BROWSE", "ATTR", "TRANS2", "TORTURE", "OPLOCK1", "OPLOCK2", "OPLOCK4", "STREAMERROR", "DIR", "DIR1", "DIR-CREATETIME", "TCON", "TCONDEV", "RW1", "RW2", "RW3", "RW-SIGNING", @@ -84,7 +78,7 @@ tests = ["RW1", "RW2", "RW3"] for t in tests: plantestsuite("samba3.smbtorture_s3.vfs_aio_fork(simpleserver).%s" % t, "simpleserver", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/vfs_aio_fork', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"]) -posix_tests=[ "POSIX", "POSIX-APPEND"] +posix_tests = ["POSIX", "POSIX-APPEND"] for t in posix_tests: plantestsuite("samba3.smbtorture_s3.plain(s3dc).%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/posix_share', '$USERNAME', '$PASSWORD', smbtorture3, "", "-l $LOCAL_PATH"]) @@ -95,7 +89,7 @@ env = "s3dc:local" t = "CLEANUP3" plantestsuite("samba3.smbtorture_s3.plain(%s).%s" % (env, t), env, [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', binpath('smbtorture3'), "", "-l $LOCAL_PATH"]) -local_tests=[ +local_tests = [ "LOCAL-SUBSTITUTE", "LOCAL-GENCACHE", "LOCAL-TALLOC-DICT", @@ -118,7 +112,7 @@ local_tests=[ for t in local_tests: plantestsuite("samba3.smbtorture_s3.%s" % t, "s3dc", [os.path.join(samba3srcdir, "script/tests/test_smbtorture_s3.sh"), t, '//$SERVER_IP/tmp', '$USERNAME', '$PASSWORD', smbtorture3, "-e"]) -tests=["--ping", "--separator", +tests = ["--ping", "--separator", "--own-domain", "--all-domains", "--trusted-domains", -- 1.7.9.5