The branch, master has been updated via 2f35c24 selftest: Add test to ensure that bug #8872 does not come back via 0cb0427 selftest: Place the test environment at the end of the failure lines via 67a851a selftest: Remove silly space before unit test name from 34ffa61 s3:winbindd: also try SMB2 when connecting to "IPC$"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 2f35c246fccd2157ccc06ee13a49c7ae854737fa Author: Andrew Bartlett <abart...@samba.org> Date: Fri Apr 27 12:52:54 2012 +1000 selftest: Add test to ensure that bug #8872 does not come back The raw.composite test checks that we handle mutliple concurrent connections. Andrew Bartlett Autobuild-User: Andrew Bartlett <abart...@samba.org> Autobuild-Date: Fri Apr 27 16:25:37 CEST 2012 on sn-devel-104 commit 0cb0427f134c8fdd79880642abef0ad1f115c3b3 Author: Andrew Bartlett <abart...@samba.org> Date: Fri Apr 27 12:50:36 2012 +1000 selftest: Place the test environment at the end of the failure lines This allows a knownfail entry to be added for only one environment, rather than all environments. Andrew Bartlett commit 67a851a05074d2ffd72d54a482a72859e8377b2f Author: Andrew Bartlett <abart...@samba.org> Date: Fri Apr 27 12:49:14 2012 +1000 selftest: Remove silly space before unit test name When we have no description, there is no need for a leading space here Andrew Bartlett ----------------------------------------------------------------------- Summary of changes: selftest/filter-subunit | 9 ++- selftest/knownfail | 192 +++++++++++++++++++++--------------------- selftest/selftesthelpers.py | 10 +- selftest/subunithelper.py | 13 ++- source3/selftest/tests.py | 9 ++- 5 files changed, 125 insertions(+), 108 deletions(-) Changeset truncated at 500 lines: diff --git a/selftest/filter-subunit b/selftest/filter-subunit index bced14b..2ed1430 100755 --- a/selftest/filter-subunit +++ b/selftest/filter-subunit @@ -40,6 +40,8 @@ parser.add_option("--fail-immediately", action="store_true", help="Whether to stop on the first error", default=False) parser.add_option("--prefix", type="string", help="Add prefix to all test names") +parser.add_option("--suffix", type="string", + help="Add suffix to all test names") parser.add_option("--fail-on-empty", default=False, action="store_true", help="Fail if there was no subunit output") parser.add_option("--list", default=False, @@ -48,10 +50,13 @@ opts, args = parser.parse_args() if opts.list: prefix = opts.prefix + suffix = opts.suffix if not prefix: prefix = "" + if not suffix: + suffix = "" for l in sys.stdin: - sys.stdout.write("%s%s\n" % (prefix, l.rstrip())) + sys.stdout.write("%s%s%s\n" % (prefix, l.rstrip(), suffix)) sys.exit(0) if opts.expected_failures: @@ -79,7 +84,7 @@ def handle_sigint(sig, stack): signal.signal(signal.SIGINT, handle_sigint) out = subunithelper.SubunitOps(sys.stdout) -msg_ops = subunithelper.FilterOps(out, opts.prefix, expected_failures, +msg_ops = subunithelper.FilterOps(out, opts.prefix, opts.suffix, expected_failures, opts.strip_passed_output, fail_immediately=opts.fail_immediately, flapping=flapping) diff --git a/selftest/knownfail b/selftest/knownfail index 525fb4c..440304f 100644 --- a/selftest/knownfail +++ b/selftest/knownfail @@ -22,7 +22,7 @@ ^samba3.nbt.dgram.*netlogon2 ^samba3.*rap.sam.*.useradd # Not provided by Samba 3 ^samba3.*rap.sam.*.userdelete # Not provided by Samba 3 -^samba3.libsmbclient .opendir # This requires a workgroup called 'WORKGROUP' and for netbios browse lists to have been registered +^samba3.libsmbclient.opendir # This requires a workgroup called 'WORKGROUP' and for netbios browse lists to have been registered # see bug 8412 ^samba3.smb2.rename.*.simple_nodelete ^samba3.smb2.rename.*.no_share_delete_no_delete_access @@ -35,7 +35,7 @@ ^samba3.blackbox.rpcclient over ncacn_np with \[spnego,smb2,bigendian\] ^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect,smb2\] ^samba3.blackbox.rpcclient over ncacn_np with \[spnego,connect,smb2,bigendian\] -^samba3.raw.composite .appendacl # This needs ACL and IDMAP behaviour that s3 cannot provide, including mapping of arbitary sids. +^samba3.raw.composite.appendacl\(s3dc\)# This needs ACL and IDMAP behaviour that smbd cannot provide, including mapping of arbitary sids. # these show that we still have some differences between our system # with our internal iconv because it passes except when we bypass our # internal iconv modules @@ -58,8 +58,8 @@ ^samba4.rpc.netlogon.*.LogonUasLogoff ^samba4.rpc.netlogon.*.DatabaseSync ^samba4.rpc.netlogon.*.DatabaseSync2 -^samba4.rpc.netlogon.*.LogonControl$ -^samba4.rpc.netlogon.*.LogonControl2$ +^samba4.rpc.netlogon.*.LogonControl\(.*\)$ +^samba4.rpc.netlogon.*.LogonControl2\(.*\)$ ^samba4.rpc.netlogon.*.NetrEnumerateTrustedDomains ^samba4.rpc.netlogon.*.NetrEnumerateTrustedDomainsEx ^samba4.rpc.netlogon.*.GetPassword @@ -75,26 +75,26 @@ ^samba4.rap.*netsessiongetinfo ^samba4.rap.*netremotetod # SMB2 in s4 does not seem to support rename correctly -^samba4.smb2.rename.simple$ -^samba4.smb2.rename.no_sharing$ -^samba4.smb2.rename.share_delete_and_delete_access$ -^samba4.smb2.rename.no_share_delete_but_delete_access$ -^samba4.smb2.rename.share_delete_no_delete_access$ -^samba4.smb2.rename.no_share_delete_no_delete_access$ +^samba4.smb2.rename.simple\(.*\)$ +^samba4.smb2.rename.no_sharing\(.*\)$ +^samba4.smb2.rename.share_delete_and_delete_access\(.*\)$ +^samba4.smb2.rename.no_share_delete_but_delete_access\(.*\)$ +^samba4.smb2.rename.share_delete_no_delete_access\(.*\)$ +^samba4.smb2.rename.no_share_delete_no_delete_access\(.*\)$ ^samba4.smb2.rename.msword ^samba4.winbind.struct.*.show_sequence # Not yet working in winbind -^samba4.*base.delaywrite.*update of write time and SMBwrite truncate$ -^samba4.*base.delaywrite.*update of write time and SMBwrite truncate expand$ -^samba4.*base.delaywrite.*delayed update of write time 3a$ -^samba4.*base.delaywrite.*delayed update of write time 3c$ -^samba4.*base.delaywrite.*update of write time using SET_END_OF_FILE$ -^samba4.*base.delaywrite.*update of write time using SET_ALLOCATION_SIZE$ -^samba4.ldap.python \(dc\).Test add_ldif\(\) with BASE64 security descriptor input using WRONG domain SID$ +^samba4.*base.delaywrite.*update of write time and SMBwrite truncate\(.*\)$ +^samba4.*base.delaywrite.*update of write time and SMBwrite truncate expand\(.*\)$ +^samba4.*base.delaywrite.*delayed update of write time 3a\(.*\)$ +^samba4.*base.delaywrite.*delayed update of write time 3c\(.*\)$ +^samba4.*base.delaywrite.*update of write time using SET_END_OF_FILE\(.*\)$ +^samba4.*base.delaywrite.*update of write time using SET_ALLOCATION_SIZE\(.*\)$ +^samba4.ldap.python \(dc\).Test add_ldif\(\) with BASE64 security descriptor input using WRONG domain SID\(.*\)$ # some operations don't work over the CIFS NTVFS backend yet (eg. root_fid) ^samba4.ntvfs.cifs.*.base.createx_sharemodes_dir ^samba4.raw.lock.*.async # bug 6960 ^samba4.smb2.lock.*.multiple-unlock # bug 6959 -^samba4.raw.sfileinfo.*.end-of-file$ # bug 6962 +^samba4.raw.sfileinfo.*.end-of-file\(.*\)$ # bug 6962 ^samba4.raw.oplock.*.batch22 # bug 6963 ^samba4.raw.lock.*.zerobyteread # bug 6974 ^samba4.smb2.lock.*.zerobyteread # bug 6974 @@ -112,85 +112,85 @@ #^samba4.ldap.dirsync.python.dc..__main__.ExtendedDirsyncTests.* ^samba4.drs.fsmo.python ^samba4.libsmbclient.opendir.opendir # This requires netbios browsing -^samba4.rpc.drsuapi .*.drsuapi.DsGetDomainControllerInfo$ -^samba4.rpc.drsuapi .*.drsuapi.DsCrackNames$ -^samba4.smb2.oplock.exclusive2$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.exclusive5$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.exclusive6$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.brl3$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.levelii500$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.brl1$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch22$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch19$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch12$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch11$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch1$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch6$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch9$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch10$ # samba 4 oplocks are a mess -^samba4.smb2.oplock.batch20$ # samba 4 oplocks are a mess +^samba4.rpc.drsuapi.*.drsuapi.DsGetDomainControllerInfo\(.*\)$ +^samba4.rpc.drsuapi.*.drsuapi.DsCrackNames\(.*\)$ +^samba4.smb2.oplock.exclusive2\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.exclusive5\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.exclusive6\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.brl3\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.levelii500\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.brl1\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch22\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch19\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch12\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch11\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch1\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch6\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch9\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch10\(.*\)$ # samba 4 oplocks are a mess +^samba4.smb2.oplock.batch20\(.*\)$ # samba 4 oplocks are a mess ^samba4.smb2.getinfo.getinfo # streams on directories does not work -^samba4.ntvfs.cifs.krb5.base.createx_access.createx_access$ -^samba4.ldap.acl.*.AclSearchTests.test_search_anonymous3$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search1$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search2$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search3$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search4$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search5$ # ACL search behaviour not enabled by default -^samba4.ldap.acl.*.AclSearchTests.test_search6$ # ACL search behaviour not enabled by default +^samba4.ntvfs.cifs.krb5.base.createx_access.createx_access\(.*\)$ +^samba4.ldap.acl.*.AclSearchTests.test_search_anonymous3\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search1\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search2\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search3\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search4\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search5\(.*\)$ # ACL search behaviour not enabled by default +^samba4.ldap.acl.*.AclSearchTests.test_search6\(.*\)$ # ACL search behaviour not enabled by default ^samba4.rpc.lsa.forest.trust #Not fully provided by Samba4 -^samba3.smb2.create .gentest -^samba3.smb2.create .blob -^samba3.smb2.create .open -^samba3.smb2.create .leading-slash -^samba3.smb2.create .aclfile -^samba3.smb2.create .acldir -^samba3.smb2.create .nulldacl -^samba3.smb2.notify .valid-req -^samba3.smb2.notify .dir -^samba3.smb2.notify .rec -^samba3.smb2.durable-open .file-position -^samba3.smb2.durable-open .lease -^samba3.smb2.durable-open .lock -^samba3.smb2.durable-open .open -^samba3.smb2.durable-open .reopen1 -^samba3.smb2.durable-open .reopen2 -^samba3.smb2.durable-open .reopen2a -^samba3.smb2.durable-open .reopen3 -^samba3.smb2.durable-open .reopen4 -^samba3.smb2.durable-open .oplock -^samba3.smb2.durable-v2-open .open-oplock -^samba3.smb2.durable-v2-open .open-lease -^samba3.smb2.durable-v2-open .persistent-open-oplock -^samba3.smb2.durable-v2-open .persistent-open-lease -^samba3.smb2.ioctl .shadow_copy -^samba3.smb2.ioctl .req_resume_key -^samba3.smb2.ioctl .copy_chunk_simple -^samba3.smb2.ioctl .copy_chunk_multi -^samba3.smb2.ioctl .copy_chunk_tiny -^samba3.smb2.ioctl .copy_chunk_overwrite -^samba3.smb2.ioctl .copy_chunk_append -^samba3.smb2.dir .one -^samba3.smb2.dir .modify -^samba3.smb2.lease .request -^samba3.smb2.lease .upgrade -^samba3.smb2.lease .break -^samba3.smb2.lease .oplock -^samba3.smb2.lease .multibreak -^samba3.smb2.oplock .batch12 -^samba3.smb2.oplock .batch20 -^samba3.smb2.acls .CREATOR -^samba3.smb2.acls .GENERIC -^samba3.smb2.acls .OWNER -^samba3.smb2.acls .INHERITANCE -^samba3.smb2.acls .INHERITFLAGS -^samba3.smb2.acls .DYNAMIC -^samba3.smb2.streams .rename -^samba3.smb2.streams .rename2 -^samba3.smb2.streams .attributes -^samba3.smb2.getinfo .getinfo -^samba3.smb2.setinfo .setinfo -^samba3.smb2.session .reconnect -^samba3.smb2.session .reauth +^samba3.smb2.create.gentest +^samba3.smb2.create.blob +^samba3.smb2.create.open +^samba3.smb2.create.leading-slash +^samba3.smb2.create.aclfile +^samba3.smb2.create.acldir +^samba3.smb2.create.nulldacl +^samba3.smb2.notify.valid-req +^samba3.smb2.notify.dir +^samba3.smb2.notify.rec +^samba3.smb2.durable-open.file-position +^samba3.smb2.durable-open.lease +^samba3.smb2.durable-open.lock +^samba3.smb2.durable-open.open +^samba3.smb2.durable-open.reopen1 +^samba3.smb2.durable-open.reopen2 +^samba3.smb2.durable-open.reopen2a +^samba3.smb2.durable-open.reopen3 +^samba3.smb2.durable-open.reopen4 +^samba3.smb2.durable-open.oplock +^samba3.smb2.durable-v2-open.open-oplock +^samba3.smb2.durable-v2-open.open-lease +^samba3.smb2.durable-v2-open.persistent-open-oplock +^samba3.smb2.durable-v2-open.persistent-open-lease +^samba3.smb2.ioctl.shadow_copy +^samba3.smb2.ioctl.req_resume_key +^samba3.smb2.ioctl.copy_chunk_simple +^samba3.smb2.ioctl.copy_chunk_multi +^samba3.smb2.ioctl.copy_chunk_tiny +^samba3.smb2.ioctl.copy_chunk_overwrite +^samba3.smb2.ioctl.copy_chunk_append +^samba3.smb2.dir.one +^samba3.smb2.dir.modify +^samba3.smb2.lease.request +^samba3.smb2.lease.upgrade +^samba3.smb2.lease.break +^samba3.smb2.lease.oplock +^samba3.smb2.lease.multibreak +^samba3.smb2.oplock.batch12 +^samba3.smb2.oplock.batch20 +^samba3.smb2.acls.CREATOR +^samba3.smb2.acls.GENERIC +^samba3.smb2.acls.OWNER +^samba3.smb2.acls.INHERITANCE +^samba3.smb2.acls.INHERITFLAGS +^samba3.smb2.acls.DYNAMIC +^samba3.smb2.streams.rename +^samba3.smb2.streams.rename2 +^samba3.smb2.streams.attributes +^samba3.smb2.getinfo.getinfo +^samba3.smb2.setinfo.setinfo +^samba3.smb2.session.reconnect +^samba3.smb2.session.reauth ^samba3.rpc.spoolss.printer.*addprinter.driver_info_winreg # knownfail or flapping? ^samba3.rpc.spoolss.printer.*addprinterex.driver_info_winreg # knownfail or flapping? diff --git a/selftest/selftesthelpers.py b/selftest/selftesthelpers.py index 991574e..7fc0854 100644 --- a/selftest/selftesthelpers.py +++ b/selftest/selftesthelpers.py @@ -101,20 +101,20 @@ def plantestsuite(name, env, cmdline, allow_empty_output=False): filter_subunit_args.append("--fail-on-empty") if "$LISTOPT" in cmdline: filter_subunit_args.append("$LISTOPT") - print "%s 2>&1 | %s/selftest/filter-subunit %s --prefix=\"%s.\"" % (cmdline, + print "%s 2>&1 | %s/selftest/filter-subunit %s --prefix=\"%s.\" --suffix=\"(%s)\"" % (cmdline, srcdir(), " ".join(filter_subunit_args), - name) + name, env) if allow_empty_output: print >>sys.stderr, "WARNING: allowing empty subunit output from %s" % name -def add_prefix(prefix, support_list=False): +def add_prefix(prefix, env, support_list=False): if support_list: listopt = "$LISTOPT " else: listopt = "" - return "%s/selftest/filter-subunit %s--fail-on-empty --prefix=\"%s.\"" % (srcdir(), listopt, prefix) + return "%s/selftest/filter-subunit %s--fail-on-empty --prefix=\"%s.\" --suffix=\"(%s)\"" % (srcdir(), listopt, prefix, env) def plantestsuite_loadlist(name, env, cmdline): @@ -128,7 +128,7 @@ def plantestsuite_loadlist(name, env, cmdline): if isinstance(cmdline, list): cmdline = " ".join(cmdline) support_list = ("$LISTOPT" in cmdline) - print "%s $LOADLIST 2>&1 | %s" % (cmdline, add_prefix(name, support_list)) + print "%s $LOADLIST 2>&1 | %s" % (cmdline, add_prefix(name, env, support_list)) def plantestsuite_idlist(name, env, cmdline): diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py index b498878..057e139 100644 --- a/selftest/subunithelper.py +++ b/selftest/subunithelper.py @@ -270,10 +270,14 @@ class FilterOps(testtools.testresult.TestResult): self._ops.startTest(test) def _add_prefix(self, test): + prefix = "" + suffix = "" if self.prefix is not None: - return subunit.RemotedTestCase(self.prefix + test.id()) - else: - return test + prefix = self.prefix + if self.suffix is not None: + suffix = self.suffix + + return subunit.RemotedTestCase(prefix + test.id() + suffix) def addError(self, test, details=None): test = self._add_prefix(test) @@ -378,13 +382,14 @@ class FilterOps(testtools.testresult.TestResult): self._ops.end_testsuite(name, result, reason) - def __init__(self, out, prefix=None, expected_failures=None, + def __init__(self, out, prefix=None, suffix=None, expected_failures=None, strip_ok_output=False, fail_immediately=False, flapping=None): self._ops = out self.seen_output = False self.output = None self.prefix = prefix + self.suffix = suffix if expected_failures is not None: self.expected_failures = expected_failures else: diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 1a11081..c40f878 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -54,7 +54,11 @@ def smb4torture_testsuites(prefix): def plansmbtorturetestsuite(name, env, options, description=''): target = "samba3" - modname = "%s.%s %s" % (target, name, description) + if description == '': + modname = "%s.%s" % (target, name) + else: + modname = "%s.%s %s" % (target, name, description) + cmdline = "%s $LISTOPT %s --target=%s %s" % (valgrindify(smb4torture), options, target, name) if smb4torture_possible: plantestsuite_loadlist(modname, env, cmdline) @@ -276,6 +280,9 @@ for t in tests: plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpguest -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/s3dc/share') elif t == "raw.chkpath": plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmpcase -U$USERNAME%$PASSWORD') + elif t == "raw.composite": + plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') + plansmbtorturetestsuite(t, "plugin_s4_dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') else: plansmbtorturetestsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD') -- Samba Shared Repository