OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 import sys | 4 import sys |
5 | 5 |
6 from measurements import smoothness | 6 from measurements import smoothness |
7 from metrics import power | 7 from metrics import power |
8 from telemetry.core import exceptions | 8 from telemetry.core import exceptions |
9 from telemetry.core import wpr_modes | 9 from telemetry.core import wpr_modes |
10 from telemetry.page import page | 10 from telemetry.page import page |
11 from telemetry.page import page_test | 11 from telemetry.page import page_test |
12 from telemetry.unittest import options_for_unittests | 12 from telemetry.unittest import options_for_unittests |
13 from telemetry.unittest import page_test_test_case | 13 from telemetry.unittest import page_test_test_case |
14 from telemetry.unittest import test | 14 from telemetry.unittest import test |
15 | 15 |
| 16 class FakeTracingController(object): |
| 17 def __init__(self): |
| 18 self.category_filter = None |
| 19 def Start(self, _options, category_filter, _timeout): |
| 20 self.category_filter = category_filter |
| 21 |
| 22 |
16 class FakePlatform(object): | 23 class FakePlatform(object): |
| 24 def __init__(self): |
| 25 self.tracing_controller = FakeTracingController() |
17 def IsRawDisplayFrameRateSupported(self): | 26 def IsRawDisplayFrameRateSupported(self): |
18 return False | 27 return False |
19 def CanMonitorPower(self): | 28 def CanMonitorPower(self): |
20 return False | 29 return False |
21 | 30 |
22 | 31 |
23 class FakeBrowser(object): | 32 class FakeBrowser(object): |
24 def __init__(self): | 33 def __init__(self): |
25 self.platform = FakePlatform() | 34 self.platform = FakePlatform() |
26 self.category_filter = None | |
27 | |
28 def StartTracing(self, category_filter, _): | |
29 self.category_filter = category_filter | |
30 | 35 |
31 | 36 |
32 class AnimatedPage(page.Page): | 37 class AnimatedPage(page.Page): |
33 def __init__(self, page_set): | 38 def __init__(self, page_set): |
34 super(AnimatedPage, self).__init__( | 39 super(AnimatedPage, self).__init__( |
35 url='file://animated_page.html', | 40 url='file://animated_page.html', |
36 page_set=page_set, base_dir=page_set.base_dir) | 41 page_set=page_set, base_dir=page_set.base_dir) |
37 | 42 |
38 def RunSmoothness(self, action_runner): | 43 def RunSmoothness(self, action_runner): |
39 action_runner.Wait(.2) | 44 action_runner.Wait(.2) |
(...skipping 20 matching lines...) Expand all Loading... |
60 'cc.DrawAndSwap': { 'target_duration': 0.012, 'mode': 'alternating' }, | 65 'cc.DrawAndSwap': { 'target_duration': 0.012, 'mode': 'alternating' }, |
61 'gpu.PresentingFrame': { 'target_duration': 0.012 } | 66 'gpu.PresentingFrame': { 'target_duration': 0.012 } |
62 } | 67 } |
63 | 68 |
64 tab = FakeTab() | 69 tab = FakeTab() |
65 measurement = smoothness.Smoothness() | 70 measurement = smoothness.Smoothness() |
66 measurement.WillStartBrowser(tab.browser) | 71 measurement.WillStartBrowser(tab.browser) |
67 measurement.WillNavigateToPage(test_page, tab) | 72 measurement.WillNavigateToPage(test_page, tab) |
68 measurement.WillRunActions(test_page, tab) | 73 measurement.WillRunActions(test_page, tab) |
69 | 74 |
70 expected_category_filter = [ | 75 expected_category_filter = set([ |
71 'DELAY(cc.BeginMainFrame;0.012000;static)', | 76 'DELAY(cc.BeginMainFrame;0.012000;static)', |
72 'DELAY(cc.DrawAndSwap;0.012000;alternating)', | 77 'DELAY(cc.DrawAndSwap;0.012000;alternating)', |
73 'DELAY(gpu.PresentingFrame;0.012000;static)', | 78 'DELAY(gpu.PresentingFrame;0.012000;static)', |
74 'benchmark' | 79 'benchmark' |
75 ] | 80 ]) |
76 actual_category_filter = tab.browser.category_filter.split(',') | 81 tracing_controller = tab.browser.platform.tracing_controller |
77 actual_category_filter.sort() | 82 actual_category_filter = ( |
| 83 tracing_controller.category_filter.included_categories) |
78 | 84 |
79 # FIXME: Put blink.console into the expected above and remove these two | 85 # FIXME: Put blink.console into the expected above and remove these two |
80 # remove entries when the blink.console change has rolled into chromium. | 86 # remove entries when the blink.console change has rolled into chromium. |
81 actual_category_filter.remove('webkit.console') | 87 actual_category_filter.remove('webkit.console') |
82 actual_category_filter.remove('blink.console') | 88 actual_category_filter.remove('blink.console') |
83 | 89 |
84 if expected_category_filter != actual_category_filter: | 90 if expected_category_filter != actual_category_filter: |
85 sys.stderr.write("Expected category filter: %s\n" % | 91 sys.stderr.write("Expected category filter: %s\n" % |
86 repr(expected_category_filter)) | 92 repr(expected_category_filter)) |
87 sys.stderr.write("Actual category filter filter: %s\n" % | 93 sys.stderr.write("Actual category filter filter: %s\n" % |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 self.fake_power = self._power_metric = FakePowerMetric(browser) | 170 self.fake_power = self._power_metric = FakePowerMetric(browser) |
165 | 171 |
166 measurement = BuggyMeasurement() | 172 measurement = BuggyMeasurement() |
167 try: | 173 try: |
168 self.RunMeasurement(measurement, ps) | 174 self.RunMeasurement(measurement, ps) |
169 except page_test.TestNotSupportedOnPlatformFailure: | 175 except page_test.TestNotSupportedOnPlatformFailure: |
170 pass | 176 pass |
171 | 177 |
172 self.assertTrue(measurement.fake_power.start_called) | 178 self.assertTrue(measurement.fake_power.start_called) |
173 self.assertTrue(measurement.fake_power.stop_called) | 179 self.assertTrue(measurement.fake_power.stop_called) |
OLD | NEW |