Index: tools/telemetry/telemetry/web_perf/timeline_based_page_test_unittest.py |
diff --git a/tools/telemetry/telemetry/web_perf/timeline_based_page_test_unittest.py b/tools/telemetry/telemetry/web_perf/timeline_based_page_test_unittest.py |
deleted file mode 100644 |
index 6ee0e2dc205172edc051e0a3e90de1c146373733..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/telemetry/web_perf/timeline_based_page_test_unittest.py |
+++ /dev/null |
@@ -1,132 +0,0 @@ |
-# Copyright 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-from telemetry import decorators |
-from telemetry.page import page as page_module |
-from telemetry.testing import browser_test_case |
-from telemetry.testing import options_for_unittests |
-from telemetry.testing import page_test_test_case |
-from telemetry.timeline import tracing_category_filter |
-from telemetry.util import wpr_modes |
-from telemetry.web_perf import timeline_based_measurement as tbm_module |
- |
-class TestTimelinebasedMeasurementPage(page_module.Page): |
- |
- def __init__(self, ps, base_dir, trigger_animation=False, |
- trigger_jank=False, trigger_slow=False, |
- trigger_scroll_gesture=False): |
- super(TestTimelinebasedMeasurementPage, self).__init__( |
- 'file://interaction_enabled_page.html', ps, base_dir) |
- self._trigger_animation = trigger_animation |
- self._trigger_jank = trigger_jank |
- self._trigger_slow = trigger_slow |
- self._trigger_scroll_gesture = trigger_scroll_gesture |
- |
- def RunPageInteractions(self, action_runner): |
- if self._trigger_animation: |
- action_runner.TapElement('#animating-button') |
- action_runner.WaitForJavaScriptCondition('window.animationDone') |
- if self._trigger_jank: |
- action_runner.TapElement('#jank-button') |
- action_runner.WaitForJavaScriptCondition('window.jankScriptDone') |
- if self._trigger_slow: |
- action_runner.TapElement('#slow-button') |
- action_runner.WaitForJavaScriptCondition('window.slowScriptDone') |
- if self._trigger_scroll_gesture: |
- with action_runner.CreateGestureInteraction('Scroll'): |
- action_runner.ScrollPage() |
- |
- |
-class TimelineBasedPageTestTest(page_test_test_case.PageTestTestCase): |
- |
- def setUp(self): |
- browser_test_case.teardown_browser() |
- self._options = options_for_unittests.GetCopy() |
- self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF |
- |
- # This test is flaky when run in parallel on the mac: crbug.com/426676 |
- # Also, fails on android: crbug.com/437057, and chromeos: crbug.com/483212 |
- @decorators.Disabled('android', 'mac', 'chromeos') |
- @decorators.Disabled('win') # crbug.com/570955 |
- def testSmoothnessTimelineBasedMeasurementForSmoke(self): |
- ps = self.CreateEmptyPageSet() |
- ps.AddStory(TestTimelinebasedMeasurementPage( |
- ps, ps.base_dir, trigger_animation=True)) |
- |
- tbm = tbm_module.TimelineBasedMeasurement(tbm_module.Options()) |
- results = self.RunMeasurement(tbm, ps, options=self._options) |
- |
- self.assertEquals(0, len(results.failures)) |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'CenterAnimation', 'frame_time_discrepancy') |
- self.assertEquals(len(v), 1) |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'DrawerAnimation', 'frame_time_discrepancy') |
- self.assertEquals(len(v), 1) |
- |
- # This test should eventually work on all platforms, but currently this |
- # this metric is flaky on desktop: crbug.com/453131 |
- @decorators.Enabled('android') |
- def testGPUTimesTimelineBasedMeasurementForSmoke(self): |
- ps = self.CreateEmptyPageSet() |
- ps.AddStory(TestTimelinebasedMeasurementPage( |
- ps, ps.base_dir, trigger_animation=True)) |
- |
- cat_filter = tracing_category_filter.TracingCategoryFilter( |
- 'disabled-by-default-gpu.service') |
- tbm_option = tbm_module.Options(overhead_level=cat_filter) |
- tbm = tbm_module.TimelineBasedMeasurement(tbm_option) |
- results = self.RunMeasurement(tbm, ps, options=self._options) |
- |
- self.assertEquals(0, len(results.failures)) |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'CenterAnimation', 'browser_compositor_max_cpu_time') |
- self.assertEquals(len(v), 1) |
- self.assertGreater(v[0].value, 0) |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'DrawerAnimation', 'browser_compositor_max_cpu_time') |
- self.assertEquals(len(v), 1) |
- self.assertGreater(v[0].value, 0) |
- |
- # Disabled since mainthread_jank metric is not supported on windows platform. |
- # Also, flaky on the mac when run in parallel: crbug.com/426676 |
- # Also, fails on android: crbug.com/437057 |
- # Also, fails on chromeos: crbug.com/483212 |
- @decorators.Disabled('android', 'win', 'mac', 'chromeos') |
- def testMainthreadJankTimelineBasedMeasurement(self): |
- ps = self.CreateEmptyPageSet() |
- ps.AddStory(TestTimelinebasedMeasurementPage( |
- ps, ps.base_dir, trigger_jank=True)) |
- |
- tbm = tbm_module.TimelineBasedMeasurement(tbm_module.Options()) |
- results = self.RunMeasurement(tbm, ps, options=self._options) |
- self.assertEquals(0, len(results.failures)) |
- |
- # In interaction_enabled_page.html, we create a jank loop based on |
- # window.performance.now() (basically loop for x milliseconds). |
- # Since window.performance.now() uses wall-time instead of thread time, |
- # we only assert the biggest jank > 50ms here to account for the fact |
- # that the browser may deschedule during the jank loop. |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'JankThreadJSRun', 'responsive-biggest_jank_thread_time') |
- self.assertGreaterEqual(v[0].value, 50) |
- |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'JankThreadJSRun', 'responsive-total_big_jank_thread_time') |
- self.assertGreaterEqual(v[0].value, 50) |
- |
- # win: crbug.com/520781, chromeos: crbug.com/483212. |
- @decorators.Disabled('win', 'chromeos') |
- def testTimelineBasedMeasurementGestureAdjustmentSmoke(self): |
- ps = self.CreateEmptyPageSet() |
- ps.AddStory(TestTimelinebasedMeasurementPage( |
- ps, ps.base_dir, trigger_scroll_gesture=True)) |
- |
- tbm = tbm_module.TimelineBasedMeasurement(tbm_module.Options()) |
- results = self.RunMeasurement(tbm, ps, options=self._options) |
- |
- self.assertEquals(0, len(results.failures)) |
- v = results.FindAllPageSpecificValuesFromIRNamed( |
- 'Gesture_Scroll', 'frame_time_discrepancy') |
- self.assertEquals(len(v), 1) |