Chromium Code Reviews| Index: tools/telemetry/telemetry/results/json_output_formatter.py |
| diff --git a/tools/telemetry/telemetry/results/json_output_formatter.py b/tools/telemetry/telemetry/results/json_output_formatter.py |
| index bf23ede9b8452d039c828b6e99720b65c74370b9..96136f5d4340b83b9b7dd347da2c39b793d81bc3 100644 |
| --- a/tools/telemetry/telemetry/results/json_output_formatter.py |
| +++ b/tools/telemetry/telemetry/results/json_output_formatter.py |
| @@ -2,9 +2,12 @@ |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| +import itertools |
| import json |
| +import shutil |
| from telemetry.results import output_formatter |
| +from telemetry.value import trace |
| def ResultsAsDict(page_test_results, benchmark_metadata): |
| """Takes PageTestResults to a dict serializable to JSON. |
| @@ -25,11 +28,27 @@ def ResultsAsDict(page_test_results, benchmark_metadata): |
| page_test_results.all_summary_values], |
| 'per_page_values': [v.AsDict() for v in |
| page_test_results.all_page_specific_values], |
| - 'pages': {p.id: p.AsDict() for p in _GetAllPages(page_test_results)} |
| + 'pages': {p.id: p.AsDict() for p in _GetAllPages(page_test_results)}, |
| } |
| + trace_values = _AllTraceValues(page_test_results) |
|
nduca
2014/09/16 20:56:24
er, why not just all filehandles? e.g. you just do
|
| + files = dict() |
| + for tv in trace_values: |
| + fh = tv.GetAssociatedFileHandle() |
| + name = str(fh.id) + '.json' |
| + shutil.copy(fh.GetRelPath(), name) |
| + files[fh.id] = name |
| + |
| + if files: |
| + result_dict['files'] = files |
| + |
| return result_dict |
| +def _AllTraceValues(page_test_results): |
| + values = itertools.chain(page_test_results.all_summary_values, |
| + page_test_results.all_page_specific_values) |
| + return [v for v in values if isinstance(v, trace.TraceValue)] |
| + |
| def _GetAllPages(page_test_results): |
| pages = set(page_run.page for page_run in |
| page_test_results.all_page_runs) |