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

Side by Side Diff: telemetry/telemetry/internal/results/results_options.py

Issue 3003163002: Add CsvOutputFormatter to Telemetry. (Closed)
Patch Set: Created 3 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import codecs 5 import codecs
6 import optparse 6 import optparse
7 import os 7 import os
8 import sys 8 import sys
9 import time 9 import time
10 10
11 from py_utils import cloud_storage # pylint: disable=import-error 11 from py_utils import cloud_storage # pylint: disable=import-error
12 12
13 from telemetry.core import util 13 from telemetry.core import util
14 from telemetry.internal.results import chart_json_output_formatter 14 from telemetry.internal.results import chart_json_output_formatter
15 from telemetry.internal.results import csv_output_formatter
15 from telemetry.internal.results import csv_pivot_table_output_formatter 16 from telemetry.internal.results import csv_pivot_table_output_formatter
16 from telemetry.internal.results import gtest_progress_reporter 17 from telemetry.internal.results import gtest_progress_reporter
17 from telemetry.internal.results import histogram_set_json_output_formatter 18 from telemetry.internal.results import histogram_set_json_output_formatter
18 from telemetry.internal.results import html_output_formatter 19 from telemetry.internal.results import html_output_formatter
20 from telemetry.internal.results import json_3_output_formatter
19 from telemetry.internal.results import json_output_formatter 21 from telemetry.internal.results import json_output_formatter
20 from telemetry.internal.results import json_3_output_formatter
21 from telemetry.internal.results import legacy_html_output_formatter 22 from telemetry.internal.results import legacy_html_output_formatter
22 from telemetry.internal.results import page_test_results 23 from telemetry.internal.results import page_test_results
23 from telemetry.internal.results import progress_reporter 24 from telemetry.internal.results import progress_reporter
24 25
25 # Allowed output formats. The default is the first item in the list. 26 # Allowed output formats. The default is the first item in the list.
26 27
27 _OUTPUT_FORMAT_CHOICES = ( 28 _OUTPUT_FORMAT_CHOICES = (
28 'html', 'gtest', 'json', 'json-test-results', 29 'chartjson',
29 'chartjson', 'csv-pivot-table', 'histograms', 'legacy-html', 'none') 30 'csv',
31 'csv-pivot-table',
32 'gtest',
33 'histograms',
34 'html',
35 'json',
36 'json-test-results',
37 'legacy-html',
38 'none',
39 )
30 40
31 41
32 # Filenames to use for given output formats. 42 # Filenames to use for given output formats.
33 _OUTPUT_FILENAME_LOOKUP = { 43 _OUTPUT_FILENAME_LOOKUP = {
44 'chartjson': 'results-chart.json',
45 'csv': 'results.csv',
46 'csv-pivot-table': 'results-pivot-table.csv',
47 'histograms': 'histograms.json',
34 'html': 'results.html', 48 'html': 'results.html',
35 'json': 'results.json', 49 'json': 'results.json',
36 'json-test-results': 'test-results.json', 50 'json-test-results': 'test-results.json',
37 'chartjson': 'results-chart.json',
38 'csv-pivot-table': 'results-pivot-table.csv',
39 'histograms': 'histograms.json',
40 'legacy-html': 'legacy-results.html' 51 'legacy-html': 'legacy-results.html'
41 } 52 }
42 53
43 54
44 def AddResultsOptions(parser): 55 def AddResultsOptions(parser):
45 group = optparse.OptionGroup(parser, 'Results options') 56 group = optparse.OptionGroup(parser, 'Results options')
46 group.add_option( 57 group.add_option(
47 '--output-format', 58 '--output-format',
48 action='append', 59 action='append',
49 dest='output_formats', 60 dest='output_formats',
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 def _GetOutputStream(output_format, output_dir): 120 def _GetOutputStream(output_format, output_dir):
110 assert output_format in _OUTPUT_FORMAT_CHOICES, 'Must specify a valid format.' 121 assert output_format in _OUTPUT_FORMAT_CHOICES, 'Must specify a valid format.'
111 assert output_format not in ('gtest', 'none'), ( 122 assert output_format not in ('gtest', 'none'), (
112 'Cannot set stream for \'gtest\' or \'none\' output formats.') 123 'Cannot set stream for \'gtest\' or \'none\' output formats.')
113 124
114 assert output_format in _OUTPUT_FILENAME_LOOKUP, ( 125 assert output_format in _OUTPUT_FILENAME_LOOKUP, (
115 'No known filename for the \'%s\' output format' % output_format) 126 'No known filename for the \'%s\' output format' % output_format)
116 output_file = os.path.join(output_dir, _OUTPUT_FILENAME_LOOKUP[output_format]) 127 output_file = os.path.join(output_dir, _OUTPUT_FILENAME_LOOKUP[output_format])
117 128
118 # TODO(eakuefner): Factor this hack out after we rewrite HTMLOutputFormatter. 129 # TODO(eakuefner): Factor this hack out after we rewrite HTMLOutputFormatter.
119 if output_format == 'html' or output_format == 'legacy-html': 130 if output_format in ['html', 'legacy-html', 'csv']:
120 open(output_file, 'a').close() # Create file if it doesn't exist. 131 open(output_file, 'a').close() # Create file if it doesn't exist.
121 return codecs.open(output_file, mode='r+', encoding='utf-8') 132 return codecs.open(output_file, mode='r+', encoding='utf-8')
122 else: 133 else:
123 return open(output_file, mode='w+') 134 return open(output_file, mode='w+')
124 135
125 136
126 def _GetProgressReporter(output_skipped_tests_summary, suppress_gtest_report): 137 def _GetProgressReporter(output_skipped_tests_summary, suppress_gtest_report):
127 if suppress_gtest_report: 138 if suppress_gtest_report:
128 return progress_reporter.ProgressReporter() 139 return progress_reporter.ProgressReporter()
129 140
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 elif output_format == 'json': 175 elif output_format == 'json':
165 output_formatters.append(json_output_formatter.JsonOutputFormatter( 176 output_formatters.append(json_output_formatter.JsonOutputFormatter(
166 output_stream, benchmark_metadata)) 177 output_stream, benchmark_metadata))
167 elif output_format == 'json-test-results': 178 elif output_format == 'json-test-results':
168 output_formatters.append(json_3_output_formatter.JsonOutputFormatter( 179 output_formatters.append(json_3_output_formatter.JsonOutputFormatter(
169 output_stream)) 180 output_stream))
170 elif output_format == 'chartjson': 181 elif output_format == 'chartjson':
171 output_formatters.append( 182 output_formatters.append(
172 chart_json_output_formatter.ChartJsonOutputFormatter( 183 chart_json_output_formatter.ChartJsonOutputFormatter(
173 output_stream, benchmark_metadata)) 184 output_stream, benchmark_metadata))
185 elif output_format == 'csv':
186 output_formatters.append(
187 csv_output_formatter.CsvOutputFormatter(
188 output_stream, options.reset_results))
174 elif output_format == 'histograms': 189 elif output_format == 'histograms':
175 output_formatters.append( 190 output_formatters.append(
176 histogram_set_json_output_formatter.HistogramSetJsonOutputFormatter( 191 histogram_set_json_output_formatter.HistogramSetJsonOutputFormatter(
177 output_stream, benchmark_metadata, options.reset_results)) 192 output_stream, benchmark_metadata, options.reset_results))
178 elif output_format == 'legacy-html': 193 elif output_format == 'legacy-html':
179 output_formatters.append( 194 output_formatters.append(
180 legacy_html_output_formatter.LegacyHtmlOutputFormatter( 195 legacy_html_output_formatter.LegacyHtmlOutputFormatter(
181 output_stream, benchmark_metadata, options.reset_results, 196 output_stream, benchmark_metadata, options.reset_results,
182 options.browser_type, options.results_label)) 197 options.browser_type, options.results_label))
183 else: 198 else:
(...skipping 14 matching lines...) Expand all
198 output_dir=options.output_dir, 213 output_dir=options.output_dir,
199 value_can_be_added_predicate=value_can_be_added_predicate, 214 value_can_be_added_predicate=value_can_be_added_predicate,
200 benchmark_enabled=benchmark_enabled) 215 benchmark_enabled=benchmark_enabled)
201 216
202 results.telemetry_info.benchmark_name = benchmark_metadata.name 217 results.telemetry_info.benchmark_name = benchmark_metadata.name
203 results.telemetry_info.benchmark_start_epoch = time.time() 218 results.telemetry_info.benchmark_start_epoch = time.time()
204 if options.results_label: 219 if options.results_label:
205 results.telemetry_info.label = options.results_label 220 results.telemetry_info.label = options.results_label
206 221
207 return results 222 return results
OLDNEW
« no previous file with comments | « telemetry/telemetry/internal/results/csv_output_formatter_unittest.py ('k') | tracing/bin/histograms2csv » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698