##// END OF EJS Templates
run-tests: move test shuffling and sorting into TestRunner
Gregory Szorc -
r21372:3a44787e default
parent child Browse files
Show More
@@ -1019,6 +1019,25 b' class TestRunner(object):'
1019 return self._run(tests)
1019 return self._run(tests)
1020
1020
1021 def _run(self, tests):
1021 def _run(self, tests):
1022 if self.options.random:
1023 random.shuffle(tests)
1024 else:
1025 # keywords for slow tests
1026 slow = 'svn gendoc check-code-hg'.split()
1027 def sortkey(f):
1028 # run largest tests first, as they tend to take the longest
1029 try:
1030 val = -os.stat(f).st_size
1031 except OSError, e:
1032 if e.errno != errno.ENOENT:
1033 raise
1034 return -1e9 # file does not exist, tell early
1035 for kw in slow:
1036 if kw in f:
1037 val *= 10
1038 return val
1039 tests.sort(key=sortkey)
1040
1022 self.testdir = os.environ['TESTDIR'] = os.getcwd()
1041 self.testdir = os.environ['TESTDIR'] = os.getcwd()
1023
1042
1024 if 'PYTHONHASHSEED' not in os.environ:
1043 if 'PYTHONHASHSEED' not in os.environ:
@@ -1444,25 +1463,6 b' def main(args, runner=None, parser=None)'
1444
1463
1445 tests = runner.findtests(args)
1464 tests = runner.findtests(args)
1446
1465
1447 if options.random:
1448 random.shuffle(tests)
1449 else:
1450 # keywords for slow tests
1451 slow = 'svn gendoc check-code-hg'.split()
1452 def sortkey(f):
1453 # run largest tests first, as they tend to take the longest
1454 try:
1455 val = -os.stat(f).st_size
1456 except OSError, e:
1457 if e.errno != errno.ENOENT:
1458 raise
1459 return -1e9 # file does not exist, tell early
1460 for kw in slow:
1461 if kw in f:
1462 val *= 10
1463 return val
1464 tests.sort(key=sortkey)
1465
1466 return runner.run(tests)
1466 return runner.run(tests)
1467
1467
1468 if __name__ == '__main__':
1468 if __name__ == '__main__':
General Comments 0
You need to be logged in to leave comments. Login now