From afb65d021527bc26d9db5c6be50ae1d8c9c61426 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 4 Aug 2016 12:51:24 -0700 Subject: [PATCH 1/5] s4: tests: Skip drs tests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Please revert once the tests are fixed. Signed-off-by: Jeremy Allison Reviewed-by: Ralph Boehme Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Fri Aug 5 22:17:03 CEST 2016 on sn-devel-144 BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108 (cherry picked from commit f6db954fd6d6b027ec253d9e17130e4fe0f0db77) --- selftest/skip | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/selftest/skip b/selftest/skip index ba6718a..879608d 100644 --- a/selftest/skip +++ b/selftest/skip @@ -138,3 +138,7 @@ bench # don't run benchmarks in our selftest ^samba4.rpc.unixinfo # This contains a server-side getpwuid call which hangs the server when nss_winbindd is in use ^samba.tests.dcerpc.unix # This contains a server-side getpwuid call which hangs the server when nss_winbindd is in use GETADDRINFO # socket wrapper doesn't support threads +# +# drs tests are currently broken. +# Revert this when they are working again. +^samba.*drs.* -- 1.9.1 From 0d7ffe5403b6daf5856f766071a40e540e441aae Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Aug 2016 12:33:34 +0200 Subject: [PATCH 2/5] tests:samba_tool: pass stdout and stderr to assertCmdSuccess() This allows us to generate better assert messages and give the developer some ideas why the command wasn't able to run. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Reviewed-by: Michael Adam (cherry picked from commit fed029a624b24e9e0b3124e1b4e0810d32a95f75) --- python/samba/tests/samba_tool/base.py | 5 ++-- python/samba/tests/samba_tool/fsmo.py | 2 +- python/samba/tests/samba_tool/gpo.py | 14 +++++----- python/samba/tests/samba_tool/group.py | 10 +++---- python/samba/tests/samba_tool/ntacl.py | 24 ++++++++-------- python/samba/tests/samba_tool/processes.py | 4 +-- python/samba/tests/samba_tool/rodc.py | 14 +++++----- python/samba/tests/samba_tool/sites.py | 4 +-- python/samba/tests/samba_tool/timecmd.py | 2 +- python/samba/tests/samba_tool/user.py | 32 ++++++++++------------ .../tests/samba_tool/user_check_password_script.py | 8 +++--- source4/torture/drs/python/fsmo.py | 2 +- 12 files changed, 60 insertions(+), 61 deletions(-) diff --git a/python/samba/tests/samba_tool/base.py b/python/samba/tests/samba_tool/base.py index de6cf18..8f00534 100644 --- a/python/samba/tests/samba_tool/base.py +++ b/python/samba/tests/samba_tool/base.py @@ -81,8 +81,9 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase): result = cmd._run("samba-tool %s %s" % (name, sub), *args) return (result, cmd.outf.getvalue(), cmd.errf.getvalue()) - def assertCmdSuccess(self, val, msg=""): - self.assertIsNone(val, msg) + def assertCmdSuccess(self, exit, out, err, msg=""): + self.assertIsNone(exit, msg="exit[%s] stdout[%s] stderr[%s]: %s" % ( + exit, out, err, msg)) def assertCmdFail(self, val, msg=""): self.assertIsNotNone(val, msg) diff --git a/python/samba/tests/samba_tool/fsmo.py b/python/samba/tests/samba_tool/fsmo.py index 207aa17..c985830 100644 --- a/python/samba/tests/samba_tool/fsmo.py +++ b/python/samba/tests/samba_tool/fsmo.py @@ -25,7 +25,7 @@ class FsmoCmdTestCase(SambaToolCmdTest): """Run fsmo show to see if it errors""" (result, out, err) = self.runsubcmd("fsmo", "show") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") # Check that the output is sensible diff --git a/python/samba/tests/samba_tool/gpo.py b/python/samba/tests/samba_tool/gpo.py index e20a977..cd22706 100644 --- a/python/samba/tests/samba_tool/gpo.py +++ b/python/samba/tests/samba_tool/gpo.py @@ -30,7 +30,7 @@ class GpoCmdTestCase(SambaToolCmdTest): def test_gpo_list(self): """Run gpo list against the server and make sure it looks accurate""" (result, out, err) = self.runsubcmd("gpo", "listall", "-H", "ldap://%s" % os.environ["SERVER"]) - self.assertCmdSuccess(result, "Ensuring gpo listall ran successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo listall ran successfully") def test_fetchfail(self): """Run against a non-existent GPO, and make sure it fails (this hard-coded UUID is very unlikely to exist""" @@ -40,23 +40,23 @@ class GpoCmdTestCase(SambaToolCmdTest): def test_fetch(self): """Run against a real GPO, and make sure it passes""" (result, out, err) = self.runsubcmd("gpo", "fetch", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "--tmpdir", self.tempdir) - self.assertCmdSuccess(result, "Ensuring gpo fetched successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully") shutil.rmtree(os.path.join(self.tempdir, "policy")) def test_show(self): """Show a real GPO, and make sure it passes""" (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"]) - self.assertCmdSuccess(result, "Ensuring gpo fetched successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully") def test_show_as_admin(self): """Show a real GPO, and make sure it passes""" (result, out, err) = self.runsubcmd("gpo", "show", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"])) - self.assertCmdSuccess(result, "Ensuring gpo fetched successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo fetched successfully") def test_aclcheck(self): """Check all the GPOs on the remote server have correct ACLs""" (result, out, err) = self.runsubcmd("gpo", "aclcheck", "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"])) - self.assertCmdSuccess(result, "Ensuring gpo checked successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo checked successfully") def setUp(self): """set up a temporary GPO to work with""" @@ -66,7 +66,7 @@ class GpoCmdTestCase(SambaToolCmdTest): "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"]), "--tmpdir", self.tempdir) shutil.rmtree(os.path.join(self.tempdir, "policy")) - self.assertCmdSuccess(result, "Ensuring gpo created successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo created successfully") try: self.gpo_guid = "{%s}" % out.split("{")[1].split("}")[0] except IndexError: @@ -75,5 +75,5 @@ class GpoCmdTestCase(SambaToolCmdTest): def tearDown(self): """remove the temporary GPO to work with""" (result, out, err) = self.runsubcmd("gpo", "del", self.gpo_guid, "-H", "ldap://%s" % os.environ["SERVER"], "-U%s%%%s" % (os.environ["USERNAME"], os.environ["PASSWORD"])) - self.assertCmdSuccess(result, "Ensuring gpo deleted successfully") + self.assertCmdSuccess(result, out, err, "Ensuring gpo deleted successfully") super(GpoCmdTestCase, self).tearDown() diff --git a/python/samba/tests/samba_tool/group.py b/python/samba/tests/samba_tool/group.py index 2c0c46e..09ba59d 100644 --- a/python/samba/tests/samba_tool/group.py +++ b/python/samba/tests/samba_tool/group.py @@ -43,7 +43,7 @@ class GroupCmdTestCase(SambaToolCmdTest): for group in self.groups: (result, out, err) = self._create_group(group) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err, "", "There shouldn't be any error message") self.assertIn("Added group %s" % group["name"], out) @@ -73,7 +73,7 @@ class GroupCmdTestCase(SambaToolCmdTest): # try to delete all the groups we just added for group in self.groups: (result, out, err) = self.runsubcmd("group", "delete", group["name"]) - self.assertCmdSuccess(result, + self.assertCmdSuccess(result, out, err, "Failed to delete group '%s'" % group["name"]) found = self._find_group(group["name"]) self.assertIsNone(found, @@ -87,7 +87,7 @@ class GroupCmdTestCase(SambaToolCmdTest): "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","There shouldn't be any error message") self.assertIn("Added group %s" % group["name"], out) @@ -102,7 +102,7 @@ class GroupCmdTestCase(SambaToolCmdTest): "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result, "Error running list") + self.assertCmdSuccess(result, out, err, "Error running list") search_filter = "(objectClass=group)" @@ -123,7 +123,7 @@ class GroupCmdTestCase(SambaToolCmdTest): "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result, "Error running listmembers") + self.assertCmdSuccess(result, out, err, "Error running listmembers") search_filter = "(|(primaryGroupID=513)(memberOf=CN=Domain Users,CN=Users,%s))" % self.samdb.domain_dn() diff --git a/python/samba/tests/samba_tool/ntacl.py b/python/samba/tests/samba_tool/ntacl.py index 2a329fe..c01d5ac 100644 --- a/python/samba/tests/samba_tool/ntacl.py +++ b/python/samba/tests/samba_tool/ntacl.py @@ -31,7 +31,7 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest): def test_ntvfs(self): (result, out, err) = self.runsubcmd("ntacl", "sysvolreset", "--use-ntvfs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(out,"","Shouldn't be any output messages") self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err) @@ -39,19 +39,19 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "sysvolreset", "--use-s3fs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(out,"","Shouldn't be any output messages") def test_ntvfs_check(self): (result, out, err) = self.runsubcmd("ntacl", "sysvolreset", "--use-ntvfs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(out,"","Shouldn't be any output messages") self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err) # Now check they were set correctly (result, out, err) = self.runsubcmd("ntacl", "sysvolcheck") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(out,"","Shouldn't be any output messages") @@ -59,13 +59,13 @@ class NtACLCmdSysvolTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "sysvolreset", "--use-s3fs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(out,"","Shouldn't be any output messages") # Now check they were set correctly (result, out, err) = self.runsubcmd("ntacl", "sysvolcheck") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(out,"","Shouldn't be any output messages") @@ -82,7 +82,7 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "set", self.acl, tempf, "--use-ntvfs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(out,"","Shouldn't be any output messages") self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err) @@ -94,7 +94,7 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "set", self.acl, tempf, "--use-s3fs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(out,"","Shouldn't be any output messages") @@ -105,14 +105,14 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "set", self.acl, tempf, "--use-ntvfs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(out,"","Shouldn't be any output messages") self.assertIn("Please note that POSIX permissions have NOT been changed, only the stored NT ACL", err) # Now check they were set correctly (result, out, err) = self.runsubcmd("ntacl", "get", tempf, "--use-ntvfs", "--as-sddl") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(self.acl+"\n", out, "Output should be the ACL") @@ -123,13 +123,13 @@ class NtACLCmdGetSetTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("ntacl", "set", self.acl, tempf, "--use-s3fs") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(out,"","Shouldn't be any output messages") self.assertEquals(err,"","Shouldn't be any error messages") # Now check they were set correctly (result, out, err) = self.runsubcmd("ntacl", "get", tempf, "--use-s3fs", "--as-sddl") - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertEquals(self.acl+"\n", out,"Output should be the ACL") diff --git a/python/samba/tests/samba_tool/processes.py b/python/samba/tests/samba_tool/processes.py index 91a5266..5b8f502 100644 --- a/python/samba/tests/samba_tool/processes.py +++ b/python/samba/tests/samba_tool/processes.py @@ -27,9 +27,9 @@ class ProcessCmdTestCase(SambaToolCmdTest): def test_name(self): """Run processes command""" (result, out, err) = self.runcmd("processes", "--name", "samba") - self.assertCmdSuccess(result, "Ensuring processes ran successfully") + self.assertCmdSuccess(result, out, err, "Ensuring processes ran successfully") def test_all(self): """Run processes command""" (result, out, err) = self.runcmd("processes") - self.assertCmdSuccess(result, "Ensuring processes ran successfully") + self.assertCmdSuccess(result, out, err, "Ensuring processes ran successfully") diff --git a/python/samba/tests/samba_tool/rodc.py b/python/samba/tests/samba_tool/rodc.py index 798bc17..4851a53 100644 --- a/python/samba/tests/samba_tool/rodc.py +++ b/python/samba/tests/samba_tool/rodc.py @@ -66,26 +66,26 @@ class RodcCmdTestCase(SambaToolCmdTest): def test_single_by_account_name(self): (result, out, err) = self.runsubcmd("rodc", "preload", "sambatool1", "--server", os.environ["DC_SERVER"]) - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\n" % self.base_dn) self.assertEqual(err, "") def test_single_by_dn(self): (result, out, err) = self.runsubcmd("rodc", "preload", "cn=sambatool2,cn=users,%s" % self.base_dn, "--server", os.environ["DC_SERVER"]) - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool2,CN=Users,%s\n" % self.base_dn) def test_multi_by_account_name(self): (result, out, err) = self.runsubcmd("rodc", "preload", "sambatool1", "sambatool2", "--server", os.environ["DC_SERVER"]) - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\nReplicating DN CN=sambatool2,CN=Users,%s\n" % (self.base_dn, self.base_dn)) def test_multi_by_dn(self): (result, out, err) = self.runsubcmd("rodc", "preload", "cn=sambatool3,cn=users,%s" % self.base_dn, "cn=sambatool4,cn=users,%s" % self.base_dn, "--server", os.environ["DC_SERVER"]) - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool3,CN=Users,%s\nReplicating DN CN=sambatool4,CN=Users,%s\n" % (self.base_dn, self.base_dn)) def test_multi_in_file(self): @@ -93,7 +93,7 @@ class RodcCmdTestCase(SambaToolCmdTest): open(tempf, 'w').write("sambatool1\nsambatool2") (result, out, err) = self.runsubcmd("rodc", "preload", "--file", tempf, "--server", os.environ["DC_SERVER"]) - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool1,CN=Users,%s\nReplicating DN CN=sambatool2,CN=Users,%s\n" % (self.base_dn, self.base_dn)) os.unlink(tempf) @@ -103,7 +103,7 @@ class RodcCmdTestCase(SambaToolCmdTest): "nonexistentuser2", "--server", os.environ["DC_SERVER"], "--ignore-errors") - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool5,CN=Users,%s\n" % self.base_dn) def test_multi_with_missing_name_failure(self): @@ -118,7 +118,7 @@ class RodcCmdTestCase(SambaToolCmdTest): "sambatool6", "sambatool5", "--server", os.environ["DC_SERVER"], "--ignore-errors") - self.assertCmdSuccess(result, "ensuring rodc prefetch ran successfully") + self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") self.assertEqual(out, "Replicating DN CN=sambatool6,CN=Users,%s\nReplicating DN CN=sambatool5,CN=Users,%s\n" % (self.base_dn, self.base_dn)) def test_multi_without_group_failure(self): diff --git a/python/samba/tests/samba_tool/sites.py b/python/samba/tests/samba_tool/sites.py index ee28109..8f96bba 100644 --- a/python/samba/tests/samba_tool/sites.py +++ b/python/samba/tests/samba_tool/sites.py @@ -44,7 +44,7 @@ class SitesCmdTestCase(BaseSitesCmdTestCase): result, out, err = self.runsubcmd("sites", "create", sitename, "-H", self.dburl, self.creds_string) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) dnsites = ldb.Dn(self.samdb, "CN=Sites,%s" % self.config_dn) dnsite = ldb.Dn(self.samdb, "CN=%s,%s" % (sitename, dnsites)) @@ -89,7 +89,7 @@ class SitesSubnetCmdTestCase(BaseSitesCmdTestCase): cidr, sitename, "-H", self.dburl, self.creds_string) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) ret = self.samdb.search(base=self.config_dn, scope=ldb.SCOPE_SUBTREE, diff --git a/python/samba/tests/samba_tool/timecmd.py b/python/samba/tests/samba_tool/timecmd.py index 000f0f2..310f861 100644 --- a/python/samba/tests/samba_tool/timecmd.py +++ b/python/samba/tests/samba_tool/timecmd.py @@ -25,7 +25,7 @@ class TimeCmdTestCase(SambaToolCmdTest): def test_timeget(self): """Run time against the server and make sure it looks accurate""" (result, out, err) = self.runcmd("time", os.environ["SERVER"]) - self.assertCmdSuccess(result, "Ensuring time ran successfully") + self.assertCmdSuccess(result, out, err, "Ensuring time ran successfully") timefmt = strptime(out, "%a %b %d %H:%M:%S %Y %Z\n") servertime = int(mktime(timefmt)) diff --git a/python/samba/tests/samba_tool/user.py b/python/samba/tests/samba_tool/user.py index 91e45c3..d2eb0e6 100644 --- a/python/samba/tests/samba_tool/user.py +++ b/python/samba/tests/samba_tool/user.py @@ -51,7 +51,7 @@ class UserCmdTestCase(SambaToolCmdTest): for user in self.users: (result, out, err) = user["createUserFn"](user) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("User '%s' created successfully" % user["name"], out) @@ -76,7 +76,7 @@ class UserCmdTestCase(SambaToolCmdTest): # try to delete all the 4 users we just added for user in self.users: (result, out, err) = self.runsubcmd("user", "delete", user["name"]) - self.assertCmdSuccess(result, "Can we delete users") + self.assertCmdSuccess(result, out, err, "Can we delete users") found = self._find_user(user["name"]) self.assertIsNone(found) @@ -93,7 +93,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) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("User '%s' created successfully" % user["name"], out) @@ -193,7 +193,7 @@ class UserCmdTestCase(SambaToolCmdTest): "--newpassword=%s" % newpasswd, "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - # self.assertCmdSuccess(result, "Ensure setpassword runs") + self.assertCmdSuccess(result, out, err, "Ensure setpassword runs") self.assertEquals(err,"","setpassword with url") self.assertMatch(out, "Changed password OK", "setpassword with url") @@ -202,7 +202,7 @@ class UserCmdTestCase(SambaToolCmdTest): "--cache-ldb-initialize", "--attributes=%s" % attributes, "--decrypt-samba-gpg") - self.assertCmdSuccess(result, "Ensure syncpasswords --cache-ldb-initialize runs") + self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --cache-ldb-initialize runs") self.assertEqual(err,"","getpassword without url") cache_attrs = { "objectClass": { "value": "userSyncPasswords" }, @@ -220,7 +220,7 @@ class UserCmdTestCase(SambaToolCmdTest): "syncpasswords --cache-ldb-initialize: %s: %s out[%s]" % (a, v, out)) (result, out, err) = self.runsubcmd("user", "syncpasswords", "--no-wait") - self.assertCmdSuccess(result, "Ensure syncpasswords --no-wait runs") + self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --no-wait runs") self.assertEqual(err,"","syncpasswords --no-wait") self.assertMatch(out, "dirsync_loop(): results 0", "syncpasswords --no-wait: 'dirsync_loop(): results 0': out[%s]" % (out)) @@ -241,12 +241,12 @@ class UserCmdTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("user", "setpassword", user["name"], "--newpassword=%s" % newpasswd) - self.assertCmdSuccess(result, "Ensure setpassword runs") + self.assertCmdSuccess(result, out, err, "Ensure setpassword runs") self.assertEquals(err,"","setpassword without url") self.assertMatch(out, "Changed password OK", "setpassword without url") (result, out, err) = self.runsubcmd("user", "syncpasswords", "--no-wait") - self.assertCmdSuccess(result, "Ensure syncpasswords --no-wait runs") + self.assertCmdSuccess(result, out, err, "Ensure syncpasswords --no-wait runs") self.assertEqual(err,"","syncpasswords --no-wait") self.assertMatch(out, "dirsync_loop(): results 0", "syncpasswords --no-wait: 'dirsync_loop(): results 0': out[%s]" % (out)) @@ -272,7 +272,7 @@ class UserCmdTestCase(SambaToolCmdTest): user["name"], "--attributes=%s" % attributes, "--decrypt-samba-gpg") - self.assertCmdSuccess(result, "Ensure getpassword runs") + self.assertCmdSuccess(result, out, err, "Ensure getpassword runs") self.assertEqual(err,"","getpassword without url") self.assertMatch(out, "Got password OK", "getpassword without url") self.assertMatch(out, "sAMAccountName: %s" % (user["name"]), @@ -298,7 +298,7 @@ class UserCmdTestCase(SambaToolCmdTest): "--must-change-at-next-login", "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - # self.assertCmdSuccess(result, "Ensure setpassword runs") + self.assertCmdSuccess(result, out, err, "Ensure setpassword runs") self.assertEquals(err,"","setpassword with forced change") self.assertMatch(out, "Changed password OK", "setpassword with forced change") @@ -313,7 +313,7 @@ class UserCmdTestCase(SambaToolCmdTest): "--days=2", "-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.assertCmdSuccess(result, out, err, "Can we run setexpiry with names") self.assertIn("Expiry for user '%s' set to 2 days." % user["name"], out) for user in self.users: @@ -333,7 +333,7 @@ class UserCmdTestCase(SambaToolCmdTest): "--days=4", "-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 a filter") + self.assertCmdSuccess(result, out, err, "Can we run setexpiry with a filter") for user in self.users: found = self._find_user(user["name"]) @@ -350,7 +350,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, "Error running list") + self.assertCmdSuccess(result, out, err, "Error running list") search_filter = ("(&(objectClass=user)(userAccountControl:%s:=%u))" % (ldb.OID_COMPARATOR_AND, dsdb.UF_NORMAL_ACCOUNT)) @@ -410,8 +410,7 @@ class UserCmdTestCase(SambaToolCmdTest): "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - msg = "command should return %s" % err - self.assertCmdSuccess(result, msg) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("User '%s' created successfully" % user["name"], out) @@ -440,8 +439,7 @@ class UserCmdTestCase(SambaToolCmdTest): "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - msg = "command should return %s" % err - self.assertCmdSuccess(result, msg) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") self.assertIn("User '%s' created successfully" % user["name"], out) diff --git a/python/samba/tests/samba_tool/user_check_password_script.py b/python/samba/tests/samba_tool/user_check_password_script.py index 5d4fbae..f1deb88 100644 --- a/python/samba/tests/samba_tool/user_check_password_script.py +++ b/python/samba/tests/samba_tool/user_check_password_script.py @@ -54,12 +54,12 @@ class UserCheckPwdTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("user", "delete", user["name"], "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result, "Should delete user with bad password.") + self.assertCmdSuccess(result, out, err, "Should delete user with bad password.") (result, out, err) = self.runsubcmd("user", "add", user["name"], good_password, "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result, "Should succeed adding a user with good password.") + self.assertCmdSuccess(result, out, err, "Should succeed adding a user with good password.") # Set password (result, out, err) = self.runsubcmd("user", "setpassword", user["name"], @@ -72,7 +72,7 @@ class UserCheckPwdTestCase(SambaToolCmdTest): "--newpassword=%s" % good_password, "-H", "ldap://%s" % os.environ["DC_SERVER"], "-U%s%%%s" % (os.environ["DC_USERNAME"], os.environ["DC_PASSWORD"])) - self.assertCmdSuccess(result, "Should succeed setting a user's password to a good one.") + self.assertCmdSuccess(result, out, err, "Should succeed setting a user's password to a good one.") # Password= @@ -86,7 +86,7 @@ class UserCheckPwdTestCase(SambaToolCmdTest): "--newpassword=%s" % good_password + 'XYZ', "--ipaddress", os.environ["DC_SERVER_IP"], "-U%s%%%s" % (user["name"], good_password)) - self.assertCmdSuccess(result, "A user setting their own password to a good one should succeed.") + self.assertCmdSuccess(result, out, err, "A user setting their own password to a good one should succeed.") def _randomUser(self, base={}): """create a user with random attribute values, you can specify base attributes""" diff --git a/source4/torture/drs/python/fsmo.py b/source4/torture/drs/python/fsmo.py index df5a274..4dd652d 100644 --- a/source4/torture/drs/python/fsmo.py +++ b/source4/torture/drs/python/fsmo.py @@ -66,7 +66,7 @@ class DrsFsmoTestCase(drs_base.DrsBaseTestCase): "-H", "ldap://%s:389" % DC, cmd_line_auth) - self.assertCmdSuccess(result) + self.assertCmdSuccess(result, out, err) self.assertEquals(err,"","Shouldn't be any error messages") if noop == False: self.assertTrue("FSMO transfer of '%s' role successful" % role in out) -- 1.9.1 From 8c46a63f34ce3e4d2ae231b7626d8a05eb204471 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Aug 2016 12:35:38 +0200 Subject: [PATCH 3/5] tests:samba_tool: make use of assertCmdFail() in gpo.py BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Reviewed-by: Michael Adam (cherry picked from commit 62b7e73d4007401f52792bc74768dfd8c1472274) --- python/samba/tests/samba_tool/gpo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/samba/tests/samba_tool/gpo.py b/python/samba/tests/samba_tool/gpo.py index cd22706..6297e1a 100644 --- a/python/samba/tests/samba_tool/gpo.py +++ b/python/samba/tests/samba_tool/gpo.py @@ -35,7 +35,7 @@ class GpoCmdTestCase(SambaToolCmdTest): def test_fetchfail(self): """Run against a non-existent GPO, and make sure it fails (this hard-coded UUID is very unlikely to exist""" (result, out, err) = self.runsubcmd("gpo", "fetch", "c25cac17-a02a-4151-835d-fae17446ee43", "-H", "ldap://%s" % os.environ["SERVER"]) - self.assertEquals(result, -1, "check for result code") + self.assertCmdFail(result, "check for result code") def test_fetch(self): """Run against a real GPO, and make sure it passes""" -- 1.9.1 From 4ffc9416dee3b3c3539a13c4d684ab2af951752b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 1 Aug 2016 16:48:53 +0200 Subject: [PATCH 4/5] script/autobuild.py: check for AUTOBUILD_SKIP_SAMBA_O3 environment variable We need to skip the samba-o3 target on older systems like sn-devel-104. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Reviewed-by: Michael Adam (cherry picked from commit 4370870957ffeaaf2c7891e8f39e4043b4881b1b) --- script/autobuild.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/script/autobuild.py b/script/autobuild.py index 0af8166..811f906 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -41,6 +41,9 @@ builddirs = { defaulttasks = [ "ctdb", "samba", "samba-xc", "samba-o3", "samba-ctdb", "samba-libs", "samba-static", "ldb", "tdb", "talloc", "replace", "tevent", "pidl" ] +if os.environ.get("AUTOBUILD_SKIP_SAMBA_O3", "0") == "1": + defaulttasks.remove("samba-o3") + samba_configure_params = " --picky-developer ${PREFIX} ${EXTRA_PYTHON} --with-profiling-data" samba_libs_envvars = "PYTHONPATH=${PYTHON_PREFIX}/site-packages:$PYTHONPATH" -- 1.9.1 From e3bcbe3b7c50b421472b0226df55ba6aa2b35577 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 2 Aug 2016 18:38:33 +0200 Subject: [PATCH 5/5] tests:blackbox: let samba_dnsupdate.py provide more details BUG: https://bugzilla.samba.org/show_bug.cgi?id=12108 Signed-off-by: Stefan Metzmacher Reviewed-by: Jeremy Allison Reviewed-by: Michael Adam (cherry picked from commit dcdef0082a190dd9ed0b365c9103429a3a75adc3) --- python/samba/tests/blackbox/samba_dnsupdate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/samba/tests/blackbox/samba_dnsupdate.py b/python/samba/tests/blackbox/samba_dnsupdate.py index 8cf367f..ee8ae26 100644 --- a/python/samba/tests/blackbox/samba_dnsupdate.py +++ b/python/samba/tests/blackbox/samba_dnsupdate.py @@ -44,14 +44,14 @@ class SambaDnsUpdateTests(samba.tests.BlackboxTestCase): try: out = self.check_output("samba_dnsupdate --verbose --use-nsupdate --current-ip=10.0.0.1") - except samba.tests.BlackboxProcessError: - self.fail("Error calling samba_dnsupdate") + except samba.tests.BlackboxProcessError as e: + self.fail("Error calling samba_dnsupdate: %s" % e) self.assertTrue("No DNS updates needed" in out, out) try: out = self.check_output("samba_dnsupdate --verbose --use-samba-tool --rpc-server-ip=%s" % self.server_ip) - except samba.tests.BlackboxProcessError: - self.fail("Error calling samba_dnsupdate") + except samba.tests.BlackboxProcessError as e: + self.fail("Error calling samba_dnsupdate: %s" % e) self.assertTrue(" DNS updates and" in out, out) self.assertTrue(" DNS deletes needed" in out, out) -- 1.9.1