Chromium Code Reviews| Index: tools/testrunner/local/execution.py |
| diff --git a/tools/testrunner/local/execution.py b/tools/testrunner/local/execution.py |
| index 80d881bc0e3229f24be3fe427c046f6058120ede..39e91ac94de831b12b4cefc082010597a1dfe904 100644 |
| --- a/tools/testrunner/local/execution.py |
| +++ b/tools/testrunner/local/execution.py |
| @@ -30,6 +30,7 @@ import os |
| import time |
| from pool import Pool |
| +from . import perfdata |
|
Jakob Kummerow
2014/05/14 17:41:42
nit: alpha-sort please
|
| from . import commands |
| from . import utils |
| @@ -59,7 +60,12 @@ def RunTest(job): |
| class Runner(object): |
| def __init__(self, suites, progress_indicator, context): |
| + datapath = os.path.join("out", "testrunner_data") |
| + self.perf_data_manager = perfdata.PerfDataManager(datapath) |
| + self.perfdata = self.perf_data_manager.GetStore(context.arch, context.mode) |
| self.tests = [ t for s in suites for t in s.tests ] |
| + for t in self.tests: |
| + t.duration = self.perfdata.FetchPerfData(t) or 1.0 |
| self._CommonInit(len(self.tests), progress_indicator, context) |
| def _CommonInit(self, num_tests, progress_indicator, context): |
| @@ -88,7 +94,7 @@ class Runner(object): |
| # while the queue is filled. |
| queue = [] |
| queued_exception = None |
| - for test in self.tests: |
| + for test in sorted(self.tests, key=lambda t: t.duration, reverse=True): |
|
Jakob Kummerow
2014/05/14 17:41:42
Hm... this is used by the network endpoint too, wh
|
| assert test.id >= 0 |
| test_map[test.id] = test |
| try: |
| @@ -124,6 +130,11 @@ class Runner(object): |
| else: |
| self.succeeded += 1 |
| self.remaining -= 1 |
| + try: |
| + self.perfdata.UpdatePerfData(test) |
| + except Exception, e: |
| + print("UpdatePerfData exception: %s" % e) |
| + pass # Just keep working. |
| self.indicator.HasRun(test, has_unexpected_output) |
| finally: |
| pool.terminate() |