run-tests: fix --blacklist with jobs > 1
filter blacklisted tests before partitioning them
to the children.
maintains the 'Skipped...' output but not the 's'.
[ original upstream message ]
--- a/tests/run-tests.py Fri May 27 17:46:47 2011 +0300
+++ b/tests/run-tests.py Fri May 27 17:46:48 2011 +0300
@@ -919,7 +919,11 @@
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 @@
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 @@
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])