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

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

Issue 730183003: Revert of Attempt #4 to convert telemetry to the typ framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « tools/telemetry/telemetry/unittest_util/run_tests_unittest.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 benchmark 8 from telemetry import benchmark
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
11 from telemetry.page import page as page_module 11 from telemetry.page import page as page_module
12 from telemetry.page import page_set 12 from telemetry.page import page_set
13 from telemetry.results import page_test_results 13 from telemetry.results import page_test_results
14 from telemetry.timeline import model as model_module 14 from telemetry.timeline import model as model_module
15 from telemetry.timeline import async_slice 15 from telemetry.timeline import async_slice
16 from telemetry.unittest_util import browser_test_case
17 from telemetry.unittest_util import options_for_unittests 16 from telemetry.unittest_util import options_for_unittests
18 from telemetry.unittest_util import page_test_test_case 17 from telemetry.unittest_util import page_test_test_case
19 from telemetry.value import scalar 18 from telemetry.value import scalar
20 from telemetry.web_perf import timeline_based_measurement as tbm_module 19 from telemetry.web_perf import timeline_based_measurement as tbm_module
21 from telemetry.web_perf import timeline_interaction_record as tir_module 20 from telemetry.web_perf import timeline_interaction_record as tir_module
22 from telemetry.web_perf.metrics import timeline_based_metric 21 from telemetry.web_perf.metrics import timeline_based_metric
23 22
24 23
25 class FakeFastMetric(timeline_based_metric.TimelineBasedMetric): 24 class FakeFastMetric(timeline_based_metric.TimelineBasedMetric):
26 25
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 action_runner.TapElement('#jank-button') 194 action_runner.TapElement('#jank-button')
196 action_runner.WaitForJavaScriptCondition('window.jankScriptDone') 195 action_runner.WaitForJavaScriptCondition('window.jankScriptDone')
197 if self._trigger_slow: 196 if self._trigger_slow:
198 action_runner.TapElement('#slow-button') 197 action_runner.TapElement('#slow-button')
199 action_runner.WaitForJavaScriptCondition('window.slowScriptDone') 198 action_runner.WaitForJavaScriptCondition('window.slowScriptDone')
200 199
201 200
202 class TimelineBasedMeasurementTest(page_test_test_case.PageTestTestCase): 201 class TimelineBasedMeasurementTest(page_test_test_case.PageTestTestCase):
203 202
204 def setUp(self): 203 def setUp(self):
205 browser_test_case.teardown_browser()
206 self._options = options_for_unittests.GetCopy() 204 self._options = options_for_unittests.GetCopy()
207 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF 205 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF
208 206
209 # This test is flaky when run in parallel on the mac: crbug.com/426676
210 @benchmark.Disabled('mac')
211 def testSmoothnessTimelineBasedMeasurementForSmoke(self): 207 def testSmoothnessTimelineBasedMeasurementForSmoke(self):
212 ps = self.CreateEmptyPageSet() 208 ps = self.CreateEmptyPageSet()
213 ps.AddPage(TestTimelinebasedMeasurementPage( 209 ps.AddPage(TestTimelinebasedMeasurementPage(
214 ps, ps.base_dir, trigger_animation=True)) 210 ps, ps.base_dir, trigger_animation=True))
215 211
216 measurement = tbm_module.TimelineBasedMeasurement() 212 measurement = tbm_module.TimelineBasedMeasurement()
217 results = self.RunMeasurement(measurement, ps, 213 results = self.RunMeasurement(measurement, ps,
218 options=self._options) 214 options=self._options)
219 215
220 self.assertEquals(0, len(results.failures)) 216 self.assertEquals(0, len(results.failures))
221 v = results.FindAllPageSpecificValuesNamed( 217 v = results.FindAllPageSpecificValuesNamed(
222 'CenterAnimation-frame_time_discrepancy') 218 'CenterAnimation-frame_time_discrepancy')
223 self.assertEquals(len(v), 1) 219 self.assertEquals(len(v), 1)
224 v = results.FindAllPageSpecificValuesNamed( 220 v = results.FindAllPageSpecificValuesNamed(
225 'DrawerAnimation-frame_time_discrepancy') 221 'DrawerAnimation-frame_time_discrepancy')
226 self.assertEquals(len(v), 1) 222 self.assertEquals(len(v), 1)
227 223
228 # This test is flaky when run in parallel on the mac: crbug.com/426676
229 @benchmark.Disabled('mac')
230 def testFastTimelineBasedMeasurementForSmoke(self): 224 def testFastTimelineBasedMeasurementForSmoke(self):
231 ps = self.CreateEmptyPageSet() 225 ps = self.CreateEmptyPageSet()
232 ps.AddPage(TestTimelinebasedMeasurementPage( 226 ps.AddPage(TestTimelinebasedMeasurementPage(
233 ps, ps.base_dir, trigger_slow=True)) 227 ps, ps.base_dir, trigger_slow=True))
234 228
235 measurement = tbm_module.TimelineBasedMeasurement() 229 measurement = tbm_module.TimelineBasedMeasurement()
236 results = self.RunMeasurement(measurement, ps, options=self._options) 230 results = self.RunMeasurement(measurement, ps, options=self._options)
237 231
238 self.assertEquals([], results.failures) 232 self.assertEquals([], results.failures)
239 expected_names = set([ 233 expected_names = set([
(...skipping 15 matching lines...) Expand all
255 self.assertEquals( 249 self.assertEquals(
256 expected_names, set(v.name for v in results.all_page_specific_values)) 250 expected_names, set(v.name for v in results.all_page_specific_values))
257 251
258 # In interaction_enabled_page.html, the "slow" interaction executes 252 # In interaction_enabled_page.html, the "slow" interaction executes
259 # a loop with window.performance.now() to wait 200ms. 253 # a loop with window.performance.now() to wait 200ms.
260 # fast-duration measures wall time so its value should be at least 200ms. 254 # fast-duration measures wall time so its value should be at least 200ms.
261 v = results.FindAllPageSpecificValuesNamed('SlowThreadJsRun-fast-duration') 255 v = results.FindAllPageSpecificValuesNamed('SlowThreadJsRun-fast-duration')
262 self.assertGreaterEqual(v[0].value, 200.0) 256 self.assertGreaterEqual(v[0].value, 200.0)
263 257
264 # Disabled since mainthread_jank metric is not supported on windows platform. 258 # Disabled since mainthread_jank metric is not supported on windows platform.
265 # Also, flaky on the mac when run in parallel: crbug.com/426676 259 @benchmark.Disabled('win')
266 @benchmark.Disabled('win', 'mac')
267 def testMainthreadJankTimelineBasedMeasurement(self): 260 def testMainthreadJankTimelineBasedMeasurement(self):
268 ps = self.CreateEmptyPageSet() 261 ps = self.CreateEmptyPageSet()
269 ps.AddPage(TestTimelinebasedMeasurementPage( 262 ps.AddPage(TestTimelinebasedMeasurementPage(
270 ps, ps.base_dir, trigger_jank=True)) 263 ps, ps.base_dir, trigger_jank=True))
271 264
272 measurement = tbm_module.TimelineBasedMeasurement() 265 measurement = tbm_module.TimelineBasedMeasurement()
273 results = self.RunMeasurement(measurement, ps, 266 results = self.RunMeasurement(measurement, ps,
274 options=self._options) 267 options=self._options)
275 self.assertEquals(0, len(results.failures)) 268 self.assertEquals(0, len(results.failures))
276 269
277 # In interaction_enabled_page.html, we create a jank loop based on 270 # In interaction_enabled_page.html, we create a jank loop based on
278 # window.performance.now() (basically loop for x milliseconds). 271 # window.performance.now() (basically loop for x milliseconds).
279 # Since window.performance.now() uses wall-time instead of thread time, 272 # Since window.performance.now() uses wall-time instead of thread time,
280 # we only assert the biggest jank > 50ms here to account for the fact 273 # we only assert the biggest jank > 50ms here to account for the fact
281 # that the browser may deschedule during the jank loop. 274 # that the browser may deschedule during the jank loop.
282 v = results.FindAllPageSpecificValuesNamed( 275 v = results.FindAllPageSpecificValuesNamed(
283 'JankThreadJSRun-responsive-biggest_jank_thread_time') 276 'JankThreadJSRun-responsive-biggest_jank_thread_time')
284 self.assertGreaterEqual(v[0].value, 50) 277 self.assertGreaterEqual(v[0].value, 50)
285 278
286 v = results.FindAllPageSpecificValuesNamed( 279 v = results.FindAllPageSpecificValuesNamed(
287 'JankThreadJSRun-responsive-total_big_jank_thread_time') 280 'JankThreadJSRun-responsive-total_big_jank_thread_time')
288 self.assertGreaterEqual(v[0].value, 50) 281 self.assertGreaterEqual(v[0].value, 50)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/unittest_util/run_tests_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698