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

Side by Side Diff: tools/telemetry/telemetry/internal/results/json_output_formatter_unittest.py

Issue 1313243003: [Telemetry] Introduce SummarizableValue. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 3 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 tempfile 8 import tempfile
9 import unittest 9 import unittest
10 10
11 from telemetry import story 11 from telemetry import story
12 from telemetry import benchmark 12 from telemetry import benchmark
13 from telemetry.internal.results import json_output_formatter 13 from telemetry.internal.results import json_output_formatter
14 from telemetry.internal.results import page_test_results 14 from telemetry.internal.results import page_test_results
15 from telemetry import page as page_module 15 from telemetry import page as page_module
16 from telemetry.timeline import trace_data 16 from telemetry.timeline import trace_data
17 from telemetry.value import improvement_direction
17 from telemetry.value import scalar 18 from telemetry.value import scalar
18 from telemetry.value import trace 19 from telemetry.value import trace
19 20
20 21
21 def _MakeStorySet(): 22 def _MakeStorySet():
22 story_set = story.StorySet(base_dir=os.path.dirname(__file__)) 23 story_set = story.StorySet(base_dir=os.path.dirname(__file__))
23 story_set.AddStory( 24 story_set.AddStory(
24 page_module.Page('http://www.foo.com/', story_set, story_set.base_dir)) 25 page_module.Page('http://www.foo.com/', story_set, story_set.base_dir))
25 story_set.AddStory( 26 story_set.AddStory(
26 page_module.Page('http://www.bar.com/', story_set, story_set.base_dir)) 27 page_module.Page('http://www.bar.com/', story_set, story_set.base_dir))
(...skipping 12 matching lines...) Expand all
39 self._formatter = json_output_formatter.JsonOutputFormatter( 40 self._formatter = json_output_formatter.JsonOutputFormatter(
40 self._output, 41 self._output,
41 benchmark.BenchmarkMetadata('benchmark_name')) 42 benchmark.BenchmarkMetadata('benchmark_name'))
42 43
43 def testOutputAndParse(self): 44 def testOutputAndParse(self):
44 results = page_test_results.PageTestResults() 45 results = page_test_results.PageTestResults()
45 46
46 self._output.truncate(0) 47 self._output.truncate(0)
47 48
48 results.WillRunPage(self._story_set[0]) 49 results.WillRunPage(self._story_set[0])
49 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 50 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
51 improvement_direction=improvement_direction.DOWN)
50 results.AddValue(v0) 52 results.AddValue(v0)
51 results.DidRunPage(self._story_set[0]) 53 results.DidRunPage(self._story_set[0])
52 54
53 self._formatter.Format(results) 55 self._formatter.Format(results)
54 json.loads(self._output.getvalue()) 56 json.loads(self._output.getvalue())
55 57
56 def testAsDictBaseKeys(self): 58 def testAsDictBaseKeys(self):
57 results = page_test_results.PageTestResults() 59 results = page_test_results.PageTestResults()
58 d = json_output_formatter.ResultsAsDict(results, 60 d = json_output_formatter.ResultsAsDict(results,
59 self._formatter.benchmark_metadata) 61 self._formatter.benchmark_metadata)
60 62
61 self.assertEquals(d['format_version'], '0.2') 63 self.assertEquals(d['format_version'], '0.2')
62 self.assertEquals(d['next_version'], '0.3') 64 self.assertEquals(d['next_version'], '0.3')
63 self.assertEquals(d['benchmark_metadata']['name'], 'benchmark_name') 65 self.assertEquals(d['benchmark_metadata']['name'], 'benchmark_name')
64 66
65 def testAsDictWithOnePage(self): 67 def testAsDictWithOnePage(self):
66 results = page_test_results.PageTestResults() 68 results = page_test_results.PageTestResults()
67 results.WillRunPage(self._story_set[0]) 69 results.WillRunPage(self._story_set[0])
68 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 70 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
71 improvement_direction=improvement_direction.DOWN)
69 results.AddValue(v0) 72 results.AddValue(v0)
70 results.DidRunPage(self._story_set[0]) 73 results.DidRunPage(self._story_set[0])
71 74
72 d = json_output_formatter.ResultsAsDict(results, 75 d = json_output_formatter.ResultsAsDict(results,
73 self._formatter.benchmark_metadata) 76 self._formatter.benchmark_metadata)
74 77
75 self.assertTrue(_HasPage(d['pages'], self._story_set[0])) 78 self.assertTrue(_HasPage(d['pages'], self._story_set[0]))
76 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) 79 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo'))
77 80
78 def testAsDictWithTraceValue(self): 81 def testAsDictWithTraceValue(self):
(...skipping 17 matching lines...) Expand all
96 self.assertTrue(output_trace_path.startswith(tempdir)) 99 self.assertTrue(output_trace_path.startswith(tempdir))
97 self.assertTrue(os.path.exists(output_trace_path)) 100 self.assertTrue(os.path.exists(output_trace_path))
98 finally: 101 finally:
99 shutil.rmtree(tempdir) 102 shutil.rmtree(tempdir)
100 103
101 104
102 105
103 def testAsDictWithTwoPages(self): 106 def testAsDictWithTwoPages(self):
104 results = page_test_results.PageTestResults() 107 results = page_test_results.PageTestResults()
105 results.WillRunPage(self._story_set[0]) 108 results.WillRunPage(self._story_set[0])
106 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3) 109 v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3,
110 improvement_direction=improvement_direction.DOWN)
107 results.AddValue(v0) 111 results.AddValue(v0)
108 results.DidRunPage(self._story_set[0]) 112 results.DidRunPage(self._story_set[0])
109 113
110 results.WillRunPage(self._story_set[1]) 114 results.WillRunPage(self._story_set[1])
111 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4) 115 v1 = scalar.ScalarValue(results.current_page, 'bar', 'seconds', 4,
116 improvement_direction=improvement_direction.DOWN)
112 results.AddValue(v1) 117 results.AddValue(v1)
113 results.DidRunPage(self._story_set[1]) 118 results.DidRunPage(self._story_set[1])
114 119
115 d = json_output_formatter.ResultsAsDict(results, 120 d = json_output_formatter.ResultsAsDict(results,
116 self._formatter.benchmark_metadata) 121 self._formatter.benchmark_metadata)
117 122
118 self.assertTrue(_HasPage(d['pages'], self._story_set[0])) 123 self.assertTrue(_HasPage(d['pages'], self._story_set[0]))
119 self.assertTrue(_HasPage(d['pages'], self._story_set[1])) 124 self.assertTrue(_HasPage(d['pages'], self._story_set[1]))
120 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo')) 125 self.assertTrue(_HasValueNamed(d['per_page_values'], 'foo'))
121 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar')) 126 self.assertTrue(_HasValueNamed(d['per_page_values'], 'bar'))
122 127
123 def testAsDictWithSummaryValueOnly(self): 128 def testAsDictWithSummaryValueOnly(self):
124 results = page_test_results.PageTestResults() 129 results = page_test_results.PageTestResults()
125 v = scalar.ScalarValue(None, 'baz', 'seconds', 5) 130 v = scalar.ScalarValue(None, 'baz', 'seconds', 5,
131 improvement_direction=improvement_direction.DOWN)
126 results.AddSummaryValue(v) 132 results.AddSummaryValue(v)
127 133
128 d = json_output_formatter.ResultsAsDict(results, 134 d = json_output_formatter.ResultsAsDict(results,
129 self._formatter.benchmark_metadata) 135 self._formatter.benchmark_metadata)
130 136
131 self.assertFalse(d['pages']) 137 self.assertFalse(d['pages'])
132 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz')) 138 self.assertTrue(_HasValueNamed(d['summary_values'], 'baz'))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698