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

Unified Diff: tools/telemetry/telemetry/page/results_options.py

Issue 22981005: [telemetry] Move Results options out of PageTest/Measurement into their own module. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge and lint. Created 7 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/page/results_options.py
diff --git a/tools/telemetry/telemetry/page/results_options.py b/tools/telemetry/telemetry/page/results_options.py
new file mode 100644
index 0000000000000000000000000000000000000000..b745ec38d3418f0389a7637740bae81011bbdfbc
--- /dev/null
+++ b/tools/telemetry/telemetry/page/results_options.py
@@ -0,0 +1,84 @@
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import optparse
+import os
+import sys
+
+from telemetry.core import util
+from telemetry.page import block_page_measurement_results
+from telemetry.page import buildbot_page_measurement_results
+from telemetry.page import csv_page_measurement_results
+from telemetry.page import gtest_test_results
+from telemetry.page import html_page_measurement_results
+from telemetry.page import page_measurement
+from telemetry.page import page_measurement_results
+
+
+# Allowed output formats. The default is the first item in the list.
+_OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', 'block', 'csv', 'gtest', 'none')
+
+
+def AddResultsOptions(parser):
+ group = optparse.OptionGroup(parser, 'Results options')
+ group.add_option('--output-format',
+ default=_OUTPUT_FORMAT_CHOICES[0],
+ choices=_OUTPUT_FORMAT_CHOICES,
+ help='Output format. Defaults to "%%default". '
+ 'Can be %s.' % ', '.join(_OUTPUT_FORMAT_CHOICES))
+ group.add_option('-o', '--output',
+ dest='output_file',
+ help='Redirects output to a file. Defaults to stdout.')
+ group.add_option('--output-trace-tag',
+ default='',
+ help='Append a tag to the key of each result trace.')
+ group.add_option('--reset-html-results', action='store_true',
+ help='Delete all stored runs in HTML output')
+ parser.add_option_group(group)
+
+
+def PrepareResults(test, options):
+ if not isinstance(test, page_measurement.PageMeasurement):
+ # Sort of hacky. The default for non-Measurements should be "gtest."
+ if options.output_format != 'none':
+ options.output_format = 'gtest'
+
+ if options.output_format == 'html' and not options.output_file:
+ options.output_file = os.path.join(util.GetBaseDir(), 'results.html')
+
+ if hasattr(options, 'output_file') and options.output_file:
+ output_file = os.path.expanduser(options.output_file)
+ open(output_file, 'a').close() # Create file if it doesn't exist.
+ output_stream = open(output_file, 'r+')
+ else:
+ output_stream = sys.stdout
+ if not hasattr(options, 'output_format'):
+ options.output_format = _OUTPUT_FORMAT_CHOICES[0]
+ if not hasattr(options, 'output_trace_tag'):
+ options.output_trace_tag = ''
+
+ if options.output_format == 'none':
+ return page_measurement_results.PageMeasurementResults(
+ trace_tag=options.output_trace_tag)
+ elif options.output_format == 'csv':
+ return csv_page_measurement_results.CsvPageMeasurementResults(
+ output_stream,
+ test.results_are_the_same_on_every_page)
+ elif options.output_format == 'block':
+ return block_page_measurement_results.BlockPageMeasurementResults(
+ output_stream)
+ elif options.output_format == 'buildbot':
+ return buildbot_page_measurement_results.BuildbotPageMeasurementResults(
+ trace_tag=options.output_trace_tag)
+ elif options.output_format == 'gtest':
+ return gtest_test_results.GTestTestResults(output_stream)
+ elif options.output_format == 'html':
+ return html_page_measurement_results.HtmlPageMeasurementResults(
+ output_stream, test.__class__.__name__, options.reset_html_results,
+ options.browser_type, trace_tag=options.output_trace_tag)
+ else:
+ # Should never be reached. The parser enforces the choices.
+ raise Exception('Invalid --output-format "%s". Valid choices are: %s'
+ % (options.output_format,
+ ', '.join(_OUTPUT_FORMAT_CHOICES)))
« no previous file with comments | « tools/telemetry/telemetry/page/record_wpr.py ('k') | tools/telemetry/telemetry/unittest/gtest_testrunner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698