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

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

Issue 809393002: Added support for improvement_direction to relevant values, which is propogated to chartjson. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix linter issues Created 5 years, 11 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
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 import os 4 import os
5 import StringIO 5 import StringIO
6 import unittest 6 import unittest
7 7
8 from telemetry import page as page_module 8 from telemetry import page as page_module
9 from telemetry.page import page_set 9 from telemetry.page import page_set
10 from telemetry.results import csv_pivot_table_output_formatter 10 from telemetry.results import csv_pivot_table_output_formatter
11 from telemetry.results import page_test_results 11 from telemetry.results import page_test_results
12 from telemetry.value import improvement_direction
12 from telemetry.value import scalar 13 from telemetry.value import scalar
13 14
14 15
15 def _MakePageSet(): 16 def _MakePageSet():
16 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) 17 ps = page_set.PageSet(file_path=os.path.dirname(__file__))
17 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) 18 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir))
18 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) 19 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir))
19 return ps 20 return ps
20 21
21 22
(...skipping 28 matching lines...) Expand all
50 self._results.AddValue(v) 51 self._results.AddValue(v)
51 self._results.DidRunPage(page) 52 self._results.DidRunPage(page)
52 53
53 def Format(self): 54 def Format(self):
54 self._formatter.Format(self._results) 55 self._formatter.Format(self._results)
55 return self._output.getvalue() 56 return self._output.getvalue()
56 57
57 def testSimple(self): 58 def testSimple(self):
58 # Test a simple benchmark with only one value: 59 # Test a simple benchmark with only one value:
59 self.SimulateBenchmarkRun({ 60 self.SimulateBenchmarkRun({
60 self._page_set[0]: [scalar.ScalarValue(None, 'foo', 'seconds', 3)]}) 61 self._page_set[0]: [scalar.ScalarValue(
62 None, 'foo', 'seconds', 3,
63 improvement_direction=improvement_direction.DOWN)]})
61 expected = self._LINE_SEPARATOR.join([ 64 expected = self._LINE_SEPARATOR.join([
62 'page_set,page,name,value,units,run_index', 65 'page_set,page,name,value,units,run_index',
63 'page_set,http://www.foo.com/,foo,3,seconds,0', 66 'page_set,http://www.foo.com/,foo,3,seconds,0',
64 '']) 67 ''])
65 68
66 self.assertEqual(expected, self.Format()) 69 self.assertEqual(expected, self.Format())
67 70
68 def testMultiplePagesAndValues(self): 71 def testMultiplePagesAndValues(self):
69 self.SimulateBenchmarkRun({ 72 self.SimulateBenchmarkRun({
70 self._page_set[0]: [scalar.ScalarValue(None, 'foo', 'seconds', 4)], 73 self._page_set[0]: [
71 self._page_set[1]: [scalar.ScalarValue(None, 'foo', 'seconds', 3.4), 74 scalar.ScalarValue(
72 scalar.ScalarValue(None, 'bar', 'km', 10), 75 None, 'foo', 'seconds', 4,
73 scalar.ScalarValue(None, 'baz', 'count', 5)]}) 76 improvement_direction=improvement_direction.DOWN)],
77 self._page_set[1]: [
78 scalar.ScalarValue(
79 None, 'foo', 'seconds', 3.4,
80 improvement_direction=improvement_direction.DOWN),
81 scalar.ScalarValue(
82 None, 'bar', 'km', 10,
83 improvement_direction=improvement_direction.DOWN),
84 scalar.ScalarValue(
85 None, 'baz', 'count', 5,
86 improvement_direction=improvement_direction.DOWN)]})
74 87
75 # Parse CSV output into list of lists. 88 # Parse CSV output into list of lists.
76 csv_string = self.Format() 89 csv_string = self.Format()
77 lines = csv_string.split(self._LINE_SEPARATOR) 90 lines = csv_string.split(self._LINE_SEPARATOR)
78 values = [s.split(',') for s in lines[1:-1]] 91 values = [s.split(',') for s in lines[1:-1]]
79 92
80 self.assertEquals(len(values), 4) # We expect 4 value in total. 93 self.assertEquals(len(values), 4) # We expect 4 value in total.
81 self.assertEquals(len(set((v[1] for v in values))), 2) # 2 pages. 94 self.assertEquals(len(set((v[1] for v in values))), 2) # 2 pages.
82 self.assertEquals(len(set((v[2] for v in values))), 3) # 3 value names. 95 self.assertEquals(len(set((v[2] for v in values))), 3) # 3 value names.
83 96
84 def testTraceTag(self): 97 def testTraceTag(self):
85 self.MakeFormatter(trace_tag='date,option') 98 self.MakeFormatter(trace_tag='date,option')
86 self.SimulateBenchmarkRun({ 99 self.SimulateBenchmarkRun({
87 self._page_set[0]: [scalar.ScalarValue(None, 'foo', 'seconds', 3), 100 self._page_set[0]: [
88 scalar.ScalarValue(None, 'bar', 'tons', 5)]}) 101 scalar.ScalarValue(
102 None, 'foo', 'seconds', 3,
103 improvement_direction=improvement_direction.DOWN),
104 scalar.ScalarValue(
105 None, 'bar', 'tons', 5,
106 improvement_direction=improvement_direction.DOWN)]})
89 output = self.Format().split(self._LINE_SEPARATOR) 107 output = self.Format().split(self._LINE_SEPARATOR)
90 108
91 self.assertTrue(output[0].endswith(',trace_tag_0,trace_tag_1')) 109 self.assertTrue(output[0].endswith(',trace_tag_0,trace_tag_1'))
92 for line in output[1:-1]: 110 for line in output[1:-1]:
93 self.assertTrue(line.endswith(',date,option')) 111 self.assertTrue(line.endswith(',date,option'))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698