run-tests: fix --blacklist with jobs > 1

filter blacklisted tests before partitioning them
to the children.

maintains the 'Skipped...' output but not the 's'.
This commit is contained in:
Idan Kamara 2011-05-27 17:46:48 +03:00
parent 13676f41c0
commit f4c2cac599

View File

@ -919,7 +919,11 @@ def runchildren(options, tests):
optcopy = dict(options.__dict__)
optcopy['jobs'] = 1
blacklist = optcopy['blacklist'] or []
del optcopy['blacklist']
blacklisted = []
if optcopy['with_hg'] is None:
optcopy['with_hg'] = os.path.join(BINDIR, "hg")
optcopy.pop('anycoverage', None)
@ -941,7 +945,11 @@ def runchildren(options, tests):
for job in jobs:
if not tests:
break
job.append(tests.pop())
test = tests.pop()
if test in blacklist:
blacklisted.append(test)
else:
job.append(test)
fps = {}
for j, job in enumerate(jobs):
@ -979,9 +987,12 @@ def runchildren(options, tests):
vlog('pid %d exited, status %d' % (pid, status))
failures |= status
print
skipped += len(blacklisted)
if not options.noskips:
for s in skips:
print "Skipped %s: %s" % (s[0], s[1])
for s in blacklisted:
print "Skipped %s: blacklisted" % s
for s in fails:
print "Failed %s: %s" % (s[0], s[1])