1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

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
This commit is contained in:
Andrew Bartlett 2012-04-27 12:50:36 +10:00
parent 67a851a050
commit 0cb0427f13
4 changed files with 63 additions and 53 deletions

View File

@ -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)

View File

@ -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 smbd 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,32 +112,32 @@
#^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

View File

@ -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):

View File

@ -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: