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

Side by Side Diff: tools/telemetry/telemetry/results/json_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 json 4 import json
5 import os 5 import os
6 import shutil 6 import shutil
7 import StringIO 7 import StringIO
8 import unittest 8 import unittest
9 import tempfile 9 import tempfile
10 10
11 from telemetry import benchmark 11 from telemetry import benchmark
12 from telemetry import page as page_module 12 from telemetry import page as page_module
13 from telemetry.page import page_set 13 from telemetry.page import page_set
14 from telemetry.results import json_output_formatter 14 from telemetry.results import json_output_formatter
15 from telemetry.results import page_test_results 15 from telemetry.results import page_test_results
16 from telemetry.value import improvement_direction
16 from telemetry.value import scalar 17 from telemetry.value import scalar
17 from telemetry.value import trace 18 from telemetry.value import trace
18 from telemetry.timeline import trace_data 19 from telemetry.timeline import trace_data
19 20
20 21
21 def _MakePageSet(): 22 def _MakePageSet():
22 ps = page_set.PageSet(file_path=os.path.dirname(__file__)) 23 ps = page_set.PageSet(file_path=os.path.dirname(__file__))
23 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir)) 24 ps.AddUserStory(page_module.Page('http://www.foo.com/', ps, ps.base_dir))
24 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir)) 25 ps.AddUserStory(page_module.Page('http://www.bar.com/', ps, ps.base_dir))
25 return ps 26 return ps
(...skipping 11 matching lines...) Expand all
37 self._formatter = json_output_formatter.JsonOutputFormatter( 38 self._formatter = json_output_formatter.JsonOutputFormatter(
38 self._output, 39 self._output,
39 benchmark.BenchmarkMetadata('benchmark_name')) 40 benchmark.BenchmarkMetadata('benchmark_name'))
40 41
41 def testOutputAndParse(self): 42 def testOutputAndParse(self):
42 results = page_test_results.PageTestResults() 43 results = page_test_results.PageTestResults()
43 44
44 self._output.truncate(0) 45 self._output.truncate(0)
45 46
46 results.WillRunPage(self._page_set[0]) 47 results.WillRunPage(self._page_set[0])
47 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 48 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
49 improvement_direction=improvement_direction.DOWN)
48 results.AddValue(v0) 50 results.AddValue(v0)
49 results.DidRunPage(self._page_set[0]) 51 results.DidRunPage(self._page_set[0])
50 52
51 self._formatter.Format(results) 53 self._formatter.Format(results)
52 json.loads(self._output.getvalue()) 54 json.loads(self._output.getvalue())
53 55
54 def testAsDictBaseKeys(self): 56 def testAsDictBaseKeys(self):
55 results = page_test_results.PageTestResults() 57 results = page_test_results.PageTestResults()
56 d = json_output_formatter.ResultsAsDict(results, 58 d = json_output_formatter.ResultsAsDict(results,
57 self._formatter.benchmark_metadata) 59 self._formatter.benchmark_metadata)
58 60
59 self.assertEquals(d['format_version'], '0.2') 61 self.assertEquals(d['format_version'], '0.2')
60 self.assertEquals(d['benchmark_name'], 'benchmark_name') 62 self.assertEquals(d['benchmark_name'], 'benchmark_name')
61 63
62 def testAsDictWithOnePage(self): 64 def testAsDictWithOnePage(self):
63 results = page_test_results.PageTestResults() 65 results = page_test_results.PageTestResults()
64 results.WillRunPage(self._page_set[0]) 66 results.WillRunPage(self._page_set[0])
65 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 67 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
68 improvement_direction=improvement_direction.DOWN)
66 results.AddValue(v0) 69 results.AddValue(v0)
67 results.DidRunPage(self._page_set[0]) 70 results.DidRunPage(self._page_set[0])
68 71
69 d = json_output_formatter.ResultsAsDict(results, 72 d = json_output_formatter.ResultsAsDict(results,
70 self._formatter.benchmark_metadata) 73 self._formatter.benchmark_metadata)
71 74
72 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) 75 self.assertTrue(_HasPage(d['pages'], self._page_set[0]))
73 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) 76 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo'))
74 77
75 def testAsDictWithTraceValue(self): 78 def testAsDictWithTraceValue(self):
(...skipping 17 matching lines...) Expand all
93 self.assertTrue(output_trace_path.startswith(tempdir)) 96 self.assertTrue(output_trace_path.startswith(tempdir))
94 self.assertTrue(os.path.exists(output_trace_path)) 97 self.assertTrue(os.path.exists(output_trace_path))
95 finally: 98 finally:
96 shutil.rmtree(tempdir) 99 shutil.rmtree(tempdir)
97 100
98 101
99 102
100 def testAsDictWithTwoPages(self): 103 def testAsDictWithTwoPages(self):
101 results = page_test_results.PageTestResults() 104 results = page_test_results.PageTestResults()
102 results.WillRunPage(self._page_set[0]) 105 results.WillRunPage(self._page_set[0])
103 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 106 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
107 improvement_direction=improvement_direction.DOWN)
104 results.AddValue(v0) 108 results.AddValue(v0)
105 results.DidRunPage(self._page_set[0]) 109 results.DidRunPage(self._page_set[0])
106 110
107 results.WillRunPage(self._page_set[1]) 111 results.WillRunPage(self._page_set[1])
108 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4) 112 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4,
113 improvement_direction=improvement_direction.DOWN)
109 results.AddValue(v1) 114 results.AddValue(v1)
110 results.DidRunPage(self._page_set[1]) 115 results.DidRunPage(self._page_set[1])
111 116
112 d = json_output_formatter.ResultsAsDict(results, 117 d = json_output_formatter.ResultsAsDict(results,
113 self._formatter.benchmark_metadata) 118 self._formatter.benchmark_metadata)
114 119
115 self.assertTrue(_HasPage(d['pages'], self._page_set[0])) 120 self.assertTrue(_HasPage(d['pages'], self._page_set[0]))
116 self.assertTrue(_HasPage(d['pages'], self._page_set[1])) 121 self.assertTrue(_HasPage(d['pages'], self._page_set[1]))
117 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) 122 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo'))
118 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar')) 123 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar'))
119 124
120 def testAsDictWithSummaryValueOnly(self): 125 def testAsDictWithSummaryValueOnly(self):
121 results = page_test_results.PageTestResults() 126 results = page_test_results.PageTestResults()
122 v = scalar.ScalarValue(None, 'baz', 'seconds', 5) 127 v = scalar.ScalarValue(None, 'baz', 'seconds', 5,
128 improvement_direction=improvement_direction.DOWN)
123 results.AddSummaryValue(v) 129 results.AddSummaryValue(v)
124 130
125 d = json_output_formatter.ResultsAsDict(results, 131 d = json_output_formatter.ResultsAsDict(results,
126 self._formatter.benchmark_metadata) 132 self._formatter.benchmark_metadata)
127 133
128 self.assertFalse(d['pages']) 134 self.assertFalse(d['pages'])
129 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz')) 135 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz'))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698