OLD | NEW |
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 from telemetry.core import wpr_modes | 5 from telemetry.core import wpr_modes |
6 from telemetry import decorators | 6 from telemetry import decorators |
7 from telemetry.unittest_util import options_for_unittests | 7 from telemetry.unittest_util import options_for_unittests |
8 from telemetry.unittest_util import page_test_test_case | 8 from telemetry.unittest_util import page_test_test_case |
9 from telemetry.web_perf.metrics.layout import LayoutMetric | |
10 | 9 |
11 from measurements import smoothness_unittest | 10 from measurements import smoothness_unittest |
12 from measurements import thread_times | 11 from measurements import thread_times |
13 from metrics import timeline | 12 from metrics import timeline |
14 | 13 |
15 | 14 |
16 class ThreadTimesUnitTest(page_test_test_case.PageTestTestCase): | 15 class ThreadTimesUnitTest(page_test_test_case.PageTestTestCase): |
17 def setUp(self): | 16 def setUp(self): |
18 self._options = options_for_unittests.GetCopy() | 17 self._options = options_for_unittests.GetCopy() |
19 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF | 18 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF |
20 | 19 |
21 @decorators.Disabled('android') | 20 @decorators.Disabled('android') |
22 def testBasic(self): | 21 def testBasic(self): |
23 ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html') | 22 ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html') |
24 measurement = thread_times.ThreadTimes() | 23 measurement = thread_times.ThreadTimes() |
25 timeline_options = self._options | 24 timeline_options = self._options |
26 results = self.RunMeasurement(measurement, ps, options = timeline_options) | 25 results = self.RunMeasurement(measurement, ps, options = timeline_options) |
27 self.assertEquals(0, len(results.failures)) | 26 self.assertFalse(len(results.failures), results.failures) |
28 | 27 |
29 for category in timeline.TimelineThreadCategories.values(): | 28 for category in timeline.TimelineThreadCategories.values(): |
30 cpu_time_name = timeline.ThreadCpuTimeResultName(category) | 29 cpu_time_name = timeline.ThreadCpuTimeResultName(category) |
31 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) | 30 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) |
32 self.assertEquals(len(cpu_time), 1) | 31 self.assertEquals(len(cpu_time), 1) |
33 | 32 |
34 for short_name in LayoutMetric.EVENTS.itervalues(): | |
35 self.assertEquals(len(results.FindAllPageSpecificValuesNamed( | |
36 short_name + '_avg')), 1) | |
37 self.assertEquals(len(results.FindAllPageSpecificValuesNamed( | |
38 short_name + '_stddev')), 1) | |
39 | |
40 def testBasicForPageWithNoGesture(self): | 33 def testBasicForPageWithNoGesture(self): |
41 ps = self.CreateEmptyPageSet() | 34 ps = self.CreateEmptyPageSet() |
42 ps.AddUserStory(smoothness_unittest.AnimatedPage(ps)) | 35 ps.AddUserStory(smoothness_unittest.AnimatedPage(ps)) |
43 | 36 |
44 measurement = thread_times.ThreadTimes() | 37 measurement = thread_times.ThreadTimes() |
45 timeline_options = self._options | 38 timeline_options = self._options |
46 results = self.RunMeasurement(measurement, ps, options = timeline_options) | 39 results = self.RunMeasurement(measurement, ps, options = timeline_options) |
47 self.assertEquals(0, len(results.failures)) | 40 self.assertEquals(0, len(results.failures)) |
48 | 41 |
49 for category in timeline.TimelineThreadCategories.values(): | 42 for category in timeline.TimelineThreadCategories.values(): |
50 cpu_time_name = timeline.ThreadCpuTimeResultName(category) | 43 cpu_time_name = timeline.ThreadCpuTimeResultName(category) |
51 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) | 44 cpu_time = results.FindAllPageSpecificValuesNamed(cpu_time_name) |
52 self.assertEquals(len(cpu_time), 1) | 45 self.assertEquals(len(cpu_time), 1) |
53 | 46 |
54 def testWithSilkDetails(self): | 47 def testWithSilkDetails(self): |
55 ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html') | 48 ps = self.CreatePageSetFromFileInUnittestDataDir('scrollable_page.html') |
56 measurement = thread_times.ThreadTimes(report_silk_details=True) | 49 measurement = thread_times.ThreadTimes(report_silk_details=True) |
57 results = self.RunMeasurement(measurement, ps, options = self._options) | 50 results = self.RunMeasurement(measurement, ps, options = self._options) |
58 self.assertEquals(0, len(results.failures)) | 51 self.assertEquals(0, len(results.failures)) |
59 | 52 |
60 main_thread = "renderer_main" | 53 main_thread = "renderer_main" |
61 expected_trace_categories = ["blink", "cc", "idle"] | 54 expected_trace_categories = ["blink", "cc", "idle"] |
62 for trace_category in expected_trace_categories: | 55 for trace_category in expected_trace_categories: |
63 value_name = timeline.ThreadDetailResultName(main_thread, trace_category) | 56 value_name = timeline.ThreadDetailResultName(main_thread, trace_category) |
64 values = results.FindAllPageSpecificValuesNamed(value_name) | 57 values = results.FindAllPageSpecificValuesNamed(value_name) |
65 self.assertEquals(len(values), 1) | 58 self.assertEquals(len(values), 1) |
66 | 59 |
67 def testCleanUpTrace(self): | 60 def testCleanUpTrace(self): |
68 self.TestTracingCleanedUp(thread_times.ThreadTimes, self._options) | 61 self.TestTracingCleanedUp(thread_times.ThreadTimes, self._options) |
OLD | NEW |