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

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

Issue 416993008: Introduce OutputFormatter interface and wire it through PageTestResults. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, address review comments. Created 6 years, 4 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
« no previous file with comments | « tools/telemetry/telemetry/results/page_test_results.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 optparse 5 import optparse
6 import os 6 import os
7 import sys 7 import sys
8 8
9 from telemetry.core import util 9 from telemetry.core import util
10 from telemetry.page import page_measurement 10 from telemetry.page import page_measurement
11 from telemetry.results import buildbot_page_measurement_results 11 from telemetry.results import buildbot_page_measurement_results
12 from telemetry.results import csv_page_measurement_results 12 from telemetry.results import csv_output_formatter
13 from telemetry.results import gtest_test_results 13 from telemetry.results import gtest_test_results
14 from telemetry.results import html_page_measurement_results 14 from telemetry.results import html_page_measurement_results
15 from telemetry.results import page_measurement_results 15 from telemetry.results import page_measurement_results
16 from telemetry.results import page_test_results
16 17
17 18
18 # Allowed output formats. The default is the first item in the list. 19 # Allowed output formats. The default is the first item in the list.
19 _OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', 'csv', 'gtest', 'none') 20 _OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', 'csv', 'gtest', 'none')
20 21
21 22
22 def AddResultsOptions(parser): 23 def AddResultsOptions(parser):
23 group = optparse.OptionGroup(parser, 'Results options') 24 group = optparse.OptionGroup(parser, 'Results options')
24 group.add_option('--output-format', 25 group.add_option('--output-format',
25 default=_OUTPUT_FORMAT_CHOICES[0], 26 default=_OUTPUT_FORMAT_CHOICES[0],
(...skipping 29 matching lines...) Expand all
55 output_file = os.path.expanduser(options.output_file) 56 output_file = os.path.expanduser(options.output_file)
56 open(output_file, 'a').close() # Create file if it doesn't exist. 57 open(output_file, 'a').close() # Create file if it doesn't exist.
57 output_stream = open(output_file, 'r+') 58 output_stream = open(output_file, 'r+')
58 else: 59 else:
59 output_stream = sys.stdout 60 output_stream = sys.stdout
60 if not hasattr(options, 'output_format'): 61 if not hasattr(options, 'output_format'):
61 options.output_format = _OUTPUT_FORMAT_CHOICES[0] 62 options.output_format = _OUTPUT_FORMAT_CHOICES[0]
62 if not hasattr(options, 'output_trace_tag'): 63 if not hasattr(options, 'output_trace_tag'):
63 options.output_trace_tag = '' 64 options.output_trace_tag = ''
64 65
66 output_formatters = []
65 if options.output_format == 'none': 67 if options.output_format == 'none':
66 return page_measurement_results.PageMeasurementResults( 68 return page_measurement_results.PageMeasurementResults(
67 output_stream, trace_tag=options.output_trace_tag) 69 output_stream, trace_tag=options.output_trace_tag)
68 elif options.output_format == 'csv': 70 elif options.output_format == 'csv':
69 return csv_page_measurement_results.CsvPageMeasurementResults(output_stream) 71 output_formatters.append(
72 csv_output_formatter.CsvOutputFormatter(output_stream))
70 elif options.output_format == 'buildbot': 73 elif options.output_format == 'buildbot':
71 return buildbot_page_measurement_results.BuildbotPageMeasurementResults( 74 return buildbot_page_measurement_results.BuildbotPageMeasurementResults(
72 output_stream, trace_tag=options.output_trace_tag) 75 output_stream, trace_tag=options.output_trace_tag)
73 elif options.output_format == 'gtest': 76 elif options.output_format == 'gtest':
74 return gtest_test_results.GTestTestResults(output_stream) 77 return gtest_test_results.GTestTestResults(output_stream)
75 elif options.output_format == 'html': 78 elif options.output_format == 'html':
76 return html_page_measurement_results.HtmlPageMeasurementResults( 79 return html_page_measurement_results.HtmlPageMeasurementResults(
77 output_stream, test.__class__.__name__, options.reset_results, 80 output_stream, test.__class__.__name__, options.reset_results,
78 options.upload_results, options.browser_type, 81 options.upload_results, options.browser_type,
79 options.results_label, trace_tag=options.output_trace_tag) 82 options.results_label, trace_tag=options.output_trace_tag)
83
84 if len(output_formatters) > 0:
85 return page_test_results.PageTestResults(
86 output_formatters=output_formatters)
80 else: 87 else:
81 # Should never be reached. The parser enforces the choices. 88 # Should never be reached. The parser enforces the choices.
82 raise Exception('Invalid --output-format "%s". Valid choices are: %s' 89 raise Exception('Invalid --output-format "%s". Valid choices are: %s'
83 % (options.output_format, 90 % (options.output_format,
84 ', '.join(_OUTPUT_FORMAT_CHOICES))) 91 ', '.join(_OUTPUT_FORMAT_CHOICES)))
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/results/page_test_results.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698