Mercurial > hg
changeset 27635:e9f099ede405
tests: only stat a test file if we don't already know its "cost"
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Mon, 04 Jan 2016 21:54:46 -0800 |
parents | a1eff44c432b |
children | 21b363bd87dc |
files | tests/run-tests.py |
diffstat | 1 files changed, 15 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/run-tests.py Mon Jan 04 21:54:44 2016 -0800 +++ b/tests/run-tests.py Mon Jan 04 21:54:46 2016 -0800 @@ -1845,18 +1845,24 @@ b'gendoc': 100, b'contrib-perf': 200, } + perf = {} def sortkey(f): # run largest tests first, as they tend to take the longest try: - val = -os.stat(f).st_size - except OSError as e: - if e.errno != errno.ENOENT: - raise - return -1e9 # file does not exist, tell early - for kw, mul in slow.items(): - if kw in f: - val *= mul - return val + return perf[f] + except KeyError: + try: + val = -os.stat(f).st_size + except OSError as e: + if e.errno != errno.ENOENT: + raise + perf[f] = -1e9 # file does not exist, tell early + return -1e9 + for kw, mul in slow.items(): + if kw in f: + val *= mul + perf[f] = val + return perf[f] tests.sort(key=sortkey) self._testdir = osenvironb[b'TESTDIR'] = getattr(