summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authornednguyen <nednguyen@google.com>2015-06-08 09:43:20 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-08 16:43:45 +0000
commitbdc0d0a041c0930d8c2cc8cc9009dba0c1a4a4ab (patch)
tree32fd7715321d402c63e38b35edc49d5ed9a9a260 /tools
parent4a3087d6ec3832632acbc8bf96e1aae243830831 (diff)
downloadchromium_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')
-rw-r--r--tools/telemetry/telemetry/results/csv_output_formatter.py74
-rw-r--r--tools/telemetry/telemetry/results/csv_output_formatter_unittest.py122
-rw-r--r--tools/telemetry/telemetry/results/page_test_results.py2
-rw-r--r--tools/telemetry/telemetry/results/results_options.py9
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))