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

Side by Side Diff: tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py

Issue 1013803003: [Telemetry] Remove is_smooth flag. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix failing test Created 5 years, 9 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 4
5 import os 5 import os
6 import unittest 6 import unittest
7 7
8 from telemetry import decorators 8 from telemetry import decorators
9 from telemetry.core import platform 9 from telemetry.core import platform
10 from telemetry.core import wpr_modes 10 from telemetry.core import wpr_modes
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 fake_tbm_metrics = (FakeSmoothMetric(), FakeLoadingMetric()) 107 fake_tbm_metrics = (FakeSmoothMetric(), FakeLoadingMetric())
108 tbm_module._GetAllTimelineBasedMetrics = lambda: fake_tbm_metrics 108 tbm_module._GetAllTimelineBasedMetrics = lambda: fake_tbm_metrics
109 109
110 def tearDown(self): 110 def tearDown(self):
111 tbm_module._GetAllTimelineBasedMetrics = self.actual_get_all_tbm_metrics 111 tbm_module._GetAllTimelineBasedMetrics = self.actual_get_all_tbm_metrics
112 112
113 def testGetRendererThreadsToInteractionRecordsMap(self): 113 def testGetRendererThreadsToInteractionRecordsMap(self):
114 d = TimelineBasedMetricTestData() 114 d = TimelineBasedMetricTestData()
115 # Insert 2 interaction records to renderer_thread and 1 to foo_thread 115 # Insert 2 interaction records to renderer_thread and 1 to foo_thread
116 d.AddInteraction(d.renderer_thread, ts=0, duration=20, 116 d.AddInteraction(d.renderer_thread, ts=0, duration=20,
117 marker='Interaction.LogicalName1/is_smooth') 117 marker='Interaction.LogicalName1')
118 d.AddInteraction(d.renderer_thread, ts=25, duration=5, 118 d.AddInteraction(d.renderer_thread, ts=25, duration=5,
119 marker='Interaction.LogicalName2/') 119 marker='Interaction.LogicalName2')
120 d.AddInteraction(d.foo_thread, ts=50, duration=15, 120 d.AddInteraction(d.foo_thread, ts=50, duration=15,
121 marker='Interaction.LogicalName3/is_smooth') 121 marker='Interaction.LogicalName3')
122 d.FinalizeImport() 122 d.FinalizeImport()
123 123
124 self.assertEquals(2, len(d.threads_to_records_map)) 124 self.assertEquals(2, len(d.threads_to_records_map))
125 125
126 # Assert the 2 interaction records of renderer_thread are in the map. 126 # Assert the 2 interaction records of renderer_thread are in the map.
127 self.assertIn(d.renderer_thread, d.threads_to_records_map) 127 self.assertIn(d.renderer_thread, d.threads_to_records_map)
128 interactions = d.threads_to_records_map[d.renderer_thread] 128 interactions = d.threads_to_records_map[d.renderer_thread]
129 self.assertEquals(2, len(interactions)) 129 self.assertEquals(2, len(interactions))
130 self.assertTrue(interactions[0].is_smooth)
131 self.assertEquals(0, interactions[0].start) 130 self.assertEquals(0, interactions[0].start)
132 self.assertEquals(20, interactions[0].end) 131 self.assertEquals(20, interactions[0].end)
133 132
134 self.assertEquals(25, interactions[1].start) 133 self.assertEquals(25, interactions[1].start)
135 self.assertEquals(30, interactions[1].end) 134 self.assertEquals(30, interactions[1].end)
136 135
137 # Assert the 1 interaction records of foo_thread is in the map. 136 # Assert the 1 interaction records of foo_thread is in the map.
138 self.assertIn(d.foo_thread, d.threads_to_records_map) 137 self.assertIn(d.foo_thread, d.threads_to_records_map)
139 interactions = d.threads_to_records_map[d.foo_thread] 138 interactions = d.threads_to_records_map[d.foo_thread]
140 self.assertEquals(1, len(interactions)) 139 self.assertEquals(1, len(interactions))
141 self.assertTrue(interactions[0].is_smooth)
142 self.assertEquals(50, interactions[0].start) 140 self.assertEquals(50, interactions[0].start)
143 self.assertEquals(65, interactions[0].end) 141 self.assertEquals(65, interactions[0].end)
144 142
145 def testAddResults(self): 143 def testAddResults(self):
146 d = TimelineBasedMetricTestData() 144 d = TimelineBasedMetricTestData()
147 d.AddInteraction(d.renderer_thread, ts=0, duration=20, 145 d.AddInteraction(d.renderer_thread, ts=0, duration=20,
148 marker='Interaction.LogicalName1/is_smooth') 146 marker='Interaction.LogicalName1')
149 d.AddInteraction(d.foo_thread, ts=25, duration=5, 147 d.AddInteraction(d.foo_thread, ts=25, duration=5,
150 marker='Interaction.LogicalName2') 148 marker='Interaction.LogicalName2')
151 d.FinalizeImport() 149 d.FinalizeImport()
152 d.AddResults() 150 d.AddResults()
153 self.assertEquals(1, len(d.results.FindAllPageSpecificValuesNamed( 151 self.assertEquals(1, len(d.results.FindAllPageSpecificValuesNamed(
154 'LogicalName1-FakeSmoothMetric'))) 152 'LogicalName1-FakeSmoothMetric')))
155 self.assertEquals(1, len(d.results.FindAllPageSpecificValuesNamed( 153 self.assertEquals(1, len(d.results.FindAllPageSpecificValuesNamed(
156 'LogicalName2-FakeLoadingMetric'))) 154 'LogicalName2-FakeLoadingMetric')))
157 155
158 def testDuplicateInteractionsInDifferentThreads(self): 156 def testDuplicateInteractionsInDifferentThreads(self):
159 d = TimelineBasedMetricTestData() 157 d = TimelineBasedMetricTestData()
160 d.AddInteraction(d.renderer_thread, ts=10, duration=5, 158 d.AddInteraction(d.renderer_thread, ts=10, duration=5,
161 marker='Interaction.LogicalName/is_smooth,repeatable') 159 marker='Interaction.LogicalName/repeatable')
162 d.AddInteraction(d.foo_thread, ts=20, duration=5, 160 d.AddInteraction(d.foo_thread, ts=20, duration=5,
163 marker='Interaction.LogicalName/is_smooth') 161 marker='Interaction.LogicalName')
164 self.assertRaises(tbm_module.InvalidInteractions, d.FinalizeImport) 162 self.assertRaises(tbm_module.InvalidInteractions, d.FinalizeImport)
165 163
166 def testDuplicateRepeatableInteractionsInDifferentThreads(self): 164 def testDuplicateRepeatableInteractionsInDifferentThreads(self):
167 d = TimelineBasedMetricTestData() 165 d = TimelineBasedMetricTestData()
168 d.AddInteraction(d.renderer_thread, ts=10, duration=5, 166 d.AddInteraction(d.renderer_thread, ts=10, duration=5,
169 marker='Interaction.LogicalName/is_smooth,repeatable') 167 marker='Interaction.LogicalName/repeatable')
170 d.AddInteraction(d.foo_thread, ts=20, duration=5, 168 d.AddInteraction(d.foo_thread, ts=20, duration=5,
171 marker='Interaction.LogicalName/is_smooth,repeatable') 169 marker='Interaction.LogicalName/repeatable')
172 self.assertRaises(tbm_module.InvalidInteractions, d.FinalizeImport) 170 self.assertRaises(tbm_module.InvalidInteractions, d.FinalizeImport)
173 171
174 172
175 def testDuplicateUnrepeatableInteractionsInSameThread(self): 173 def testDuplicateUnrepeatableInteractionsInSameThread(self):
176 d = TimelineBasedMetricTestData() 174 d = TimelineBasedMetricTestData()
177 d.AddInteraction(d.renderer_thread, ts=10, duration=5, 175 d.AddInteraction(d.renderer_thread, ts=10, duration=5,
178 marker='Interaction.LogicalName/is_smooth') 176 marker='Interaction.LogicalName')
179 d.AddInteraction(d.renderer_thread, ts=20, duration=5, 177 d.AddInteraction(d.renderer_thread, ts=20, duration=5,
180 marker='Interaction.LogicalName/is_smooth') 178 marker='Interaction.LogicalName')
181 d.FinalizeImport() 179 d.FinalizeImport()
182 self.assertRaises(tbm_module.InvalidInteractions, d.AddResults) 180 self.assertRaises(tbm_module.InvalidInteractions, d.AddResults)
183 181
184 def testDuplicateRepeatableInteractions(self): 182 def testDuplicateRepeatableInteractions(self):
185 d = TimelineBasedMetricTestData() 183 d = TimelineBasedMetricTestData()
186 d.AddInteraction(d.renderer_thread, ts=10, duration=5, 184 d.AddInteraction(d.renderer_thread, ts=10, duration=5,
187 marker='Interaction.LogicalName/is_smooth,repeatable') 185 marker='Interaction.LogicalName/repeatable')
188 d.AddInteraction(d.renderer_thread, ts=20, duration=5, 186 d.AddInteraction(d.renderer_thread, ts=20, duration=5,
189 marker='Interaction.LogicalName/is_smooth,repeatable') 187 marker='Interaction.LogicalName/repeatable')
190 d.FinalizeImport() 188 d.FinalizeImport()
191 d.AddResults() 189 d.AddResults()
192 self.assertEquals(1, len(d.results.pages_that_succeeded)) 190 self.assertEquals(1, len(d.results.pages_that_succeeded))
193 191
194 def testDuplicateRepeatableInteractionsWithDifferentMetrics(self):
195 d = TimelineBasedMetricTestData()
196
197 responsive_marker = 'Interaction.LogicalName/repeatable'
198 d.AddInteraction(
199 d.renderer_thread, ts=10, duration=5, marker=responsive_marker)
200 smooth_marker = 'Interaction.LogicalName/is_smooth,repeatable'
201 d.AddInteraction(d.renderer_thread, ts=20, duration=5, marker=smooth_marker)
202 d.FinalizeImport()
203 self.assertRaises(tbm_module.InvalidInteractions, d.AddResults)
204
205
206 class TestTimelinebasedMeasurementPage(page_module.Page): 192 class TestTimelinebasedMeasurementPage(page_module.Page):
207 193
208 def __init__(self, ps, base_dir, trigger_animation=False, 194 def __init__(self, ps, base_dir, trigger_animation=False,
209 trigger_jank=False, trigger_slow=False): 195 trigger_jank=False, trigger_slow=False):
210 super(TestTimelinebasedMeasurementPage, self).__init__( 196 super(TestTimelinebasedMeasurementPage, self).__init__(
211 'file://interaction_enabled_page.html', ps, base_dir) 197 'file://interaction_enabled_page.html', ps, base_dir)
212 self._trigger_animation = trigger_animation 198 self._trigger_animation = trigger_animation
213 self._trigger_jank = trigger_jank 199 self._trigger_jank = trigger_jank
214 self._trigger_slow = trigger_slow 200 self._trigger_slow = trigger_slow
215 201
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 # Since window.performance.now() uses wall-time instead of thread time, 259 # Since window.performance.now() uses wall-time instead of thread time,
274 # we only assert the biggest jank > 50ms here to account for the fact 260 # we only assert the biggest jank > 50ms here to account for the fact
275 # that the browser may deschedule during the jank loop. 261 # that the browser may deschedule during the jank loop.
276 v = results.FindAllPageSpecificValuesNamed( 262 v = results.FindAllPageSpecificValuesNamed(
277 'JankThreadJSRun-responsive-biggest_jank_thread_time') 263 'JankThreadJSRun-responsive-biggest_jank_thread_time')
278 self.assertGreaterEqual(v[0].value, 50) 264 self.assertGreaterEqual(v[0].value, 50)
279 265
280 v = results.FindAllPageSpecificValuesNamed( 266 v = results.FindAllPageSpecificValuesNamed(
281 'JankThreadJSRun-responsive-total_big_jank_thread_time') 267 'JankThreadJSRun-responsive-total_big_jank_thread_time')
282 self.assertGreaterEqual(v[0].value, 50) 268 self.assertGreaterEqual(v[0].value, 50)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698