diff options
author | nednguyen <nednguyen@google.com> | 2015-06-08 09:43:20 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-08 16:43:45 +0000 |
commit | bdc0d0a041c0930d8c2cc8cc9009dba0c1a4a4ab (patch) | |
tree | 32fd7715321d402c63e38b35edc49d5ed9a9a260 /tools | |
parent | 4a3087d6ec3832632acbc8bf96e1aae243830831 (diff) | |
download | chromium_src-bdc0d0a041c0930d8c2cc8cc9009dba0c1a4a4ab.zip chromium_src-bdc0d0a041c0930d8c2cc8cc9009dba0c1a4a4ab.tar.gz chromium_src-bdc0d0a041c0930d8c2cc8cc9009dba0c1a4a4ab.tar.bz2 |
[Telemetry] Remove support for csv output format.
Looks like all functionalities that come from csv output format can be covered
by csv-pivot-table format.
BUG=497315
Review URL: https://codereview.chromium.org/1148823006
Cr-Commit-Position: refs/heads/master@{#333277}
Diffstat (limited to 'tools')
4 files changed, 3 insertions, 204 deletions
diff --git a/tools/telemetry/telemetry/results/csv_output_formatter.py b/tools/telemetry/telemetry/results/csv_output_formatter.py deleted file mode 100644 index 3c10657..0000000 --- a/tools/telemetry/telemetry/results/csv_output_formatter.py +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright 2014 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 csv - -from telemetry.results import output_formatter -from telemetry.value import merge_values - - -class CsvOutputFormatter(output_formatter.OutputFormatter): - def __init__(self, output_stream): - super(CsvOutputFormatter, self).__init__(output_stream) - - def Format(self, page_test_results): - values = merge_values.MergeLikeValuesFromSamePage( - page_test_results.all_page_specific_values) - writer = csv.writer(self.output_stream) - header_value_names = self._OutputHeader(values, writer) - value_groups_by_page = merge_values.GroupStably( - values, lambda value: value.page.url) - for values_for_page in value_groups_by_page: - self._OutputValuesForPage( - header_value_names, values_for_page[0].page, values_for_page, - writer) - - def _OutputHeader(self, values, csv_writer): - """Output the header rows. - - This will retrieve the header string from the given values. As a - results, you would typically pass it all of the recorded values at - the end of the entire telemetry run. In cases where each page - produces the same set of value names, you may call this method - with that set of values. - - Args: - values: A set of values from which to extract the header string, - which is the value name and the units. - writer: A csv.writer instance. - - Returns: - The value names being output on the header, in the order of - output. - """ - representative_values = {} - for value in values: - if value.name not in representative_values: - representative_values[value.name] = value - header_value_names = list(representative_values.keys()) - header_value_names.sort() - - row = ['page_name'] - for value_name in header_value_names: - units = representative_values[value_name].units - row.append('%s (%s)' % (value_name, units)) - csv_writer.writerow(row) - self.output_stream.flush() - return header_value_names - - def _OutputValuesForPage(self, header_value_names, page, page_values, - csv_writer): - row = [page.display_name] - values_by_value_name = {} - for value in page_values: - values_by_value_name[value.name] = value - - for value_name in header_value_names: - value = values_by_value_name.get(value_name, None) - if value and value.GetRepresentativeNumber(): - row.append('%s' % value.GetRepresentativeNumber()) - else: - row.append('-') - csv_writer.writerow(row) - self.output_stream.flush() diff --git a/tools/telemetry/telemetry/results/csv_output_formatter_unittest.py b/tools/telemetry/telemetry/results/csv_output_formatter_unittest.py deleted file mode 100644 index 1aac38c..0000000 --- a/tools/telemetry/telemetry/results/csv_output_formatter_unittest.py +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 2014 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 csv -import os -import StringIO -import unittest - -from telemetry import page as page_module -from telemetry.page import page_set -from telemetry.results import csv_output_formatter -from telemetry.results import page_test_results -from telemetry.value import histogram -from telemetry.value import scalar - - -def _MakePageSet(): - ps = page_set.PageSet(file_path=os.path.dirname(__file__)) - ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) - ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) - return ps - - -class CsvOutputFormatterTest(unittest.TestCase): - def setUp(self): - self._output = StringIO.StringIO() - self._page_set = _MakePageSet() - self._formatter = csv_output_formatter.CsvOutputFormatter(self._output) - - @property - def lines(self): - lines = StringIO.StringIO(self._output.getvalue()).readlines() - return lines - - @property - def output_header_row(self): - rows = list(csv.reader(self.lines)) - return rows[0] - - @property - def output_data_rows(self): - rows = list(csv.reader(self.lines)) - return rows[1:] - - def test_with_no_results_on_second_run(self): - results = page_test_results.PageTestResults() - results.WillRunPage(self._page_set[0]) - results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) - results.DidRunPage(self._page_set[0]) - - results.WillRunPage(self._page_set[1]) - results.DidRunPage(self._page_set[1]) - - self._formatter.Format(results) - - self.assertEqual(['page_name', 'foo (seconds)'], self.output_header_row) - # TODO(chrishenry): Is this really the right behavior? Should this - # not output a second row with '-' as its results? - expected = [[self._page_set[0].url, '3.0']] - self.assertEqual(expected, self.output_data_rows) - - def test_fewer_results_on_second_run(self): - results = page_test_results.PageTestResults() - results.WillRunPage(self._page_set[0]) - results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) - results.AddValue(scalar.ScalarValue(self._page_set[0], 'bar', 'seconds', 4)) - results.DidRunPage(self._page_set[0]) - - results.WillRunPage(self._page_set[1]) - results.AddValue(scalar.ScalarValue(self._page_set[1], 'bar', 'seconds', 5)) - results.DidRunPage(self._page_set[1]) - - self._formatter.Format(results) - self.assertEqual(['page_name', 'bar (seconds)', 'foo (seconds)'], - self.output_header_row) - expected = [[self._page_set[0].url, '4.0', '3.0'], - [self._page_set[1].url, '5.0', '-']] - self.assertEqual(expected, self.output_data_rows) - - def test_with_output_at_print_summary_time(self): - results = page_test_results.PageTestResults() - results.WillRunPage(self._page_set[0]) - results.AddValue(scalar.ScalarValue(self._page_set[0], 'foo', 'seconds', 3)) - results.DidRunPage(self._page_set[0]) - - results.WillRunPage(self._page_set[1]) - results.AddValue(scalar.ScalarValue(self._page_set[1], 'bar', 'seconds', 4)) - results.DidRunPage(self._page_set[1]) - - self._formatter.Format(results) - - self.assertEqual( - self.output_header_row, - ['page_name', 'bar (seconds)', 'foo (seconds)']) - - expected = [[self._page_set[0].display_name, '-', '3.0'], - [self._page_set[1].display_name, '4.0', '-']] - self.assertEqual(expected, self.output_data_rows) - - def test_histogram(self): - results = page_test_results.PageTestResults() - results.WillRunPage(self._page_set[0]) - results.AddValue(histogram.HistogramValue( - self._page_set[0], 'a', '', - raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}')) - results.DidRunPage(self._page_set[0]) - - results.WillRunPage(self._page_set[1]) - results.AddValue(histogram.HistogramValue( - self._page_set[1], 'a', '', - raw_value_json='{"buckets": [{"low": 2, "high": 3, "count": 1}]}')) - results.DidRunPage(self._page_set[1]) - - self._formatter.Format(results) - - self.assertEqual( - self.output_header_row, - ['page_name', 'a ()']) - self.assertEqual( - self.output_data_rows, - [[self._page_set[0].display_name, '1.5'], - [self._page_set[1].display_name, '2.5']]) diff --git a/tools/telemetry/telemetry/results/page_test_results.py b/tools/telemetry/telemetry/results/page_test_results.py index 336621c..638115a 100644 --- a/tools/telemetry/telemetry/results/page_test_results.py +++ b/tools/telemetry/telemetry/results/page_test_results.py @@ -28,7 +28,7 @@ class PageTestResults(object): output_stream: The output stream to use to write test results. output_formatters: A list of output formatters. The output formatters are typically used to format the test results, such - as CsvOutputFormatter, which output the test results as CSV. + as CsvPivotTableOutputFormatter, which output the test results as CSV. progress_reporter: An instance of progress_reporter.ProgressReporter, to be used to output test status/results progressively. trace_tag: A string to append to the buildbot trace name. Currently only diff --git a/tools/telemetry/telemetry/results/results_options.py b/tools/telemetry/telemetry/results/results_options.py index dd1cc7e..26d76bf 100644 --- a/tools/telemetry/telemetry/results/results_options.py +++ b/tools/telemetry/telemetry/results/results_options.py @@ -9,7 +9,6 @@ import sys from telemetry.core import util from telemetry.results import buildbot_output_formatter from telemetry.results import chart_json_output_formatter -from telemetry.results import csv_output_formatter from telemetry.results import csv_pivot_table_output_formatter from telemetry.results import gtest_progress_reporter from telemetry.results import html_output_formatter @@ -18,14 +17,13 @@ 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', 'csv', 'gtest', 'json', +_OUTPUT_FORMAT_CHOICES = ('html', 'buildbot', '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' @@ -122,10 +120,7 @@ def CreateResults(benchmark_metadata, options, continue output_stream = _GetOutputStream(output_format, options.output_dir) - if output_format == 'csv': - output_formatters.append(csv_output_formatter.CsvOutputFormatter( - output_stream)) - elif output_format == 'csv-pivot-table': + if output_format == 'csv-pivot-table': output_formatters.append( csv_pivot_table_output_formatter.CsvPivotTableOutputFormatter( output_stream, trace_tag=options.output_trace_tag)) |