Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Unified Diff: tools/telemetry/telemetry/results/json_output_formatter.py

Issue 545523002: [Telemetry] Add capability for values to reference external files. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address staticmethod nit Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698