run-tests: schedule largest tests first
authorMatt Mackall <mpm@selenic.com>
Sun, 02 Jun 2013 17:56:51 -0500
changeset 19277 09e1c148e847
parent 19276 e55751963889
child 19278 bc35b9ed3ae7
run-tests: schedule largest tests first
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