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

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

Issue 651383002: Replace page_runner.py --output (and -o) flag with --output-dir (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « tools/telemetry/telemetry/page/profile_generator.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/results/results_options.py
diff --git a/tools/telemetry/telemetry/results/results_options.py b/tools/telemetry/telemetry/results/results_options.py
index 410dfa1f29c84c6cd8e2d9d06431d72e4ec33f8b..e21e4936378739e21999c4ddfaccf36b16c1fc67 100644
--- a/tools/telemetry/telemetry/results/results_options.py
+++ b/tools/telemetry/telemetry/results/results_options.py
@@ -18,10 +18,20 @@ from telemetry.results import page_test_results
from telemetry.results import progress_reporter
# Allowed output formats. The default is the first item in the list.
-_OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', 'block', 'csv', 'gtest', 'json',
+_OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', 'csv', 'gtest', 'json',
'chartjson', 'csv-pivot-table', 'none')
+# Filenames to use for given output formats.
+_OUTPUT_FILENAME_LOOKUP = {
+ 'html': 'results.html',
+ 'csv': 'results.csv',
+ 'json': 'results.json',
+ 'chartjson': 'results-chart.json',
+ 'csv-pivot-table': 'results-pivot-table.csv'
+}
+
+
def AddResultsOptions(parser):
group = optparse.OptionGroup(parser, 'Results options')
group.add_option('--chartjson', action='store_true',
@@ -34,6 +44,8 @@ def AddResultsOptions(parser):
dest='output_file',
default=None,
help='Redirects output to a file. Defaults to stdout.')
+ group.add_option('--output-dir', default=util.GetBaseDir(),
+ help='Where to save output data after the run.')
group.add_option('--output-trace-tag',
default='',
help='Append a tag to the key of each result trace. Use '
@@ -51,17 +63,33 @@ def AddResultsOptions(parser):
parser.add_option_group(group)
-def _GetOutputStream(output_format, output_file):
+def ProcessCommandLineArgs(parser, args):
+ # TODO(ariblue): Delete this flag entirely at some future data, when the
+ # existence of such a flag has been long forgotten.
+ if args.output_file:
+ parser.error('This flag is deprecated. Please use --output-dir instead.')
+
+ try:
+ os.makedirs(args.output_dir)
+ except OSError:
+ # Do nothing if the output directory already exists. Existing files will
+ # get overwritten.
+ pass
+
+ args.output_dir = os.path.expanduser(args.output_dir)
+
+
+def _GetOutputStream(output_format, output_dir):
assert output_format in _OUTPUT_FORMAT_CHOICES, 'Must specify a valid format.'
assert output_format not in ('gtest', 'none'), (
'Cannot set stream for \'gtest\' or \'none\' output formats.')
- if output_file is None:
- if output_format != 'html' and output_format != 'json':
- return sys.stdout
- output_file = os.path.join(util.GetBaseDir(), 'results.' + output_format)
+ if output_format == 'buildbot':
+ return sys.stdout
- output_file = os.path.expanduser(output_file)
+ assert output_format in _OUTPUT_FILENAME_LOOKUP, (
+ 'No known filename for the \'%s\' output format' % output_format)
+ output_file = os.path.join(output_dir, _OUTPUT_FILENAME_LOOKUP[output_format])
open(output_file, 'a').close() # Create file if it doesn't exist.
return open(output_file, 'r+')
@@ -82,20 +110,12 @@ def CreateResults(benchmark_metadata, options):
if not options.output_formats:
options.output_formats = [_OUTPUT_FORMAT_CHOICES[0]]
- # TODO(chrishenry): It doesn't make sense to have a single output_file flag
- # with multiple output formatters. We should explore other possible options:
- # - Have an output_file per output formatter
- # - Have --output-dir instead of --output-file
- if len(options.output_formats) != 1 and options.output_file:
- raise Exception('Cannot specify output_file flag with multiple output '
- 'formats.')
-
output_formatters = []
for output_format in options.output_formats:
if output_format == 'none' or output_format == "gtest" or options.chartjson:
continue
- output_stream = _GetOutputStream(output_format, options.output_file)
+ output_stream = _GetOutputStream(output_format, options.output_dir)
if output_format == 'csv':
output_formatters.append(csv_output_formatter.CsvOutputFormatter(
output_stream))
« no previous file with comments | « tools/telemetry/telemetry/page/profile_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698