run-tests: fix --blacklist with jobs > 1 stable
authorIdan Kamara <idankk86@gmail.com>
Fri, 27 May 2011 17:46:48 +0300
branchstable
changeset 956 e39ab51937a2
parent 955 85e0c572897f
child 957 9cb57d78b54f
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 ]
tests/run-tests.py
--- 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])