run-tests: schedule largest tests first stable
authorMatt Mackall <mpm@selenic.com>
Sun, 02 Jun 2013 17:56:51 -0500
branchstable
changeset 1255 ac0cc929e982
parent 1254 1642fcc7e2a1
child 1256 b1831d4a8d1a
run-tests: schedule largest tests first [ original upstream message ]
tests/run-tests.py
--- a/tests/run-tests.py	Sun Jun 02 16:58:22 2013 -0500
+++ b/tests/run-tests.py	Sun Jun 02 17:56:51 2013 -0500
@@ -1287,14 +1287,17 @@
         checktools()
 
         if len(args) == 0:
-            args = sorted(t for t in os.listdir(".")
-                          if t.startswith("test-")
-                          and (t.endswith(".py") or t.endswith(".t")))
+            args = [t for t in os.listdir(".")
+                    if t.startswith("test-")
+                    and (t.endswith(".py") or t.endswith(".t"))]
 
     tests = args
 
     if options.random:
         random.shuffle(tests)
+    else:
+        # run largest tests first, as they tend to take the longest
+        tests.sort(key=lambda x: -os.stat(x).st_size)
 
     if 'PYTHONHASHSEED' not in os.environ:
         # use a random python hash seed all the time