diff options
Diffstat (limited to 'deps/v8/tools/testrunner/local/progress.py')
-rw-r--r-- | deps/v8/tools/testrunner/local/progress.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/deps/v8/tools/testrunner/local/progress.py b/deps/v8/tools/testrunner/local/progress.py index 2616958c47..ed9d315b4e 100644 --- a/deps/v8/tools/testrunner/local/progress.py +++ b/deps/v8/tools/testrunner/local/progress.py @@ -291,6 +291,7 @@ class JsonTestProgressIndicator(ProgressIndicator): self.arch = arch self.mode = mode self.results = [] + self.tests = [] def Starting(self): self.progress_indicator.runner = self.runner @@ -304,10 +305,24 @@ class JsonTestProgressIndicator(ProgressIndicator): # Buildbot might start out with an empty file. complete_results = json.loads(f.read() or "[]") + # Sort tests by duration. + timed_tests = [t for t in self.tests if t.duration is not None] + timed_tests.sort(lambda a, b: cmp(b.duration, a.duration)) + slowest_tests = [ + { + "name": test.GetLabel(), + "flags": test.flags, + "command": EscapeCommand(self.runner.GetCommand(test)).replace( + ABS_PATH_PREFIX, ""), + "duration": test.duration, + } for test in timed_tests[:20] + ] + complete_results.append({ "arch": self.arch, "mode": self.mode, "results": self.results, + "slowest_tests": slowest_tests, }) with open(self.json_test_results, "w") as f: @@ -318,6 +333,8 @@ class JsonTestProgressIndicator(ProgressIndicator): def HasRun(self, test, has_unexpected_output): self.progress_indicator.HasRun(test, has_unexpected_output) + # Buffer all tests for sorting the durations in the end. + self.tests.append(test) if not has_unexpected_output: # Omit tests that run as expected. Passing tests of reruns after failures # will have unexpected_output to be reported here has well. @@ -334,6 +351,7 @@ class JsonTestProgressIndicator(ProgressIndicator): "exit_code": test.output.exit_code, "result": test.suite.GetOutcome(test), "expected": list(test.outcomes or ["PASS"]), + "duration": test.duration, }) |