Index: tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py |
diff --git a/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py b/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py |
index 0e86d351a53085c6d3071d06f01756fe021eb6f3..3b8f321b93876cef34b6d980ee35a82ae1736ab5 100644 |
--- a/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py |
+++ b/tools/telemetry/telemetry/web_perf/timeline_based_measurement_unittest.py |
@@ -12,6 +12,9 @@ from telemetry.core.timeline import async_slice |
from telemetry.page import page_measurement_results |
from telemetry.page import page_measurement_unittest_base |
from telemetry.page import page_set |
+from telemetry.page import page as page_module |
+# pylint: disable=W0401,W0614 |
+from telemetry.page.actions.all_page_actions import * |
from telemetry.unittest import options_for_unittests |
from telemetry.web_perf import timeline_based_measurement as tbm_module |
from telemetry.web_perf.metrics import timeline_based_metric |
@@ -32,7 +35,7 @@ class TimelineBasedMetricsTests(unittest.TestCase): |
timestamp=0, duration=20, |
start_thread=renderer_thread, end_thread=renderer_thread)) |
renderer_thread.async_slices.append(async_slice.AsyncSlice( |
- 'cat', 'Interaction.LogicalName2/is_loading_resources', |
+ 'cat', 'Interaction.LogicalName2/is_responsive', |
timestamp=25, duration=5, |
start_thread=renderer_thread, end_thread=renderer_thread)) |
model.FinalizeImport() |
@@ -49,7 +52,7 @@ class TimelineBasedMetricsTests(unittest.TestCase): |
self.assertEquals(0, interactions[0].start) |
self.assertEquals(20, interactions[0].end) |
- self.assertTrue(interactions[1].is_loading_resources) |
+ self.assertTrue(interactions[1].is_responsive) |
self.assertEquals(25, interactions[1].start) |
self.assertEquals(30, interactions[1].end) |
@@ -71,7 +74,7 @@ class TimelineBasedMetricsTests(unittest.TestCase): |
res = [] |
if interaction.is_smooth: |
res.append(FakeSmoothMetric()) |
- if interaction.is_loading_resources: |
+ if interaction.is_responsive: |
res.append(FakeLoadingMetric()) |
return res |
@@ -91,6 +94,19 @@ class TimelineBasedMetricsTests(unittest.TestCase): |
self.assertEquals(len(v), 1) |
+class TestTimelinebasedMeasurementPage(page_module.Page): |
+ |
+ def __init__(self, ps, base_dir): |
+ super(TestTimelinebasedMeasurementPage, self).__init__( |
+ 'file://interaction_enabled_page.html', ps, base_dir) |
+ |
+ def RunSmoothness(self, action_runner): |
+ action_runner.RunAction(WaitAction({'seconds': 2})) |
+ action_runner.RunAction(TapAction( |
+ {'selector': '#drawer', 'automatically_record_interaction': False})) |
+ action_runner.RunAction(WaitAction({'seconds': 1})) |
+ |
+ |
class TimelineBasedMeasurementTest( |
page_measurement_unittest_base.PageMeasurementUnitTestBase): |
def setUp(self): |
@@ -99,7 +115,7 @@ class TimelineBasedMeasurementTest( |
# Disabled due to flakiness: crbug.com/368386 |
@test.Disabled |
- def testTimelineBasedForSmoke(self): |
+ def testSmoothnessTimelineBasedMeasurementForSmoke(self): |
ps = self.CreatePageSetFromFileInUnittestDataDir( |
'interaction_enabled_page.html') |
setattr(ps.pages[0], 'RunSmoothness', {'action': 'wait', |
@@ -113,3 +129,18 @@ class TimelineBasedMeasurementTest( |
v = results.FindAllPageSpecificValuesNamed('DrawerAnimation-jank') |
self.assertEquals(len(v), 1) |
+ def testMainthreadJankTimelineBasedMeasurement(self): |
+ ps = self.CreateEmptyPageSet() |
+ ps.AddPage(TestTimelinebasedMeasurementPage(ps, ps.base_dir)) |
+ |
+ measurement = tbm_module.TimelineBasedMeasurement() |
+ results = self.RunMeasurement(measurement, ps, |
+ options=self._options) |
+ self.assertEquals(0, len(results.failures)) |
+ v = results.FindAllPageSpecificValuesNamed('JankThreadJSRun-num_big_janks') |
+ self.assertEquals(len(v), 1) |
+ self.assertEquals(v[0].value, 1) |
+ |
+ v = results.FindAllPageSpecificValuesNamed( |
+ 'JankThreadJSRun-biggest_jank_thread_time') |
+ self.assertGreaterEqual(v[0].value, 50) |