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 | 4 |
5 import unittest | 5 import unittest |
6 | 6 |
7 from metrics import timeline | 7 from metrics import timeline |
8 from telemetry.core.timeline import bounds | 8 from telemetry.core.timeline import bounds |
9 from telemetry.core.timeline import model as model_module | 9 from telemetry.core.timeline import model as model_module |
10 from telemetry.page import page as page_module | 10 from telemetry.page import page as page_module |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) | 102 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
103 renderer_main.name = 'CrRendererMain' | 103 renderer_main.name = 'CrRendererMain' |
104 | 104 |
105 metric = timeline.ThreadTimesTimelineMetric() | 105 metric = timeline.ThreadTimesTimelineMetric() |
106 metric._action_ranges = [self.GetActionRange(1, 2)] | 106 metric._action_ranges = [self.GetActionRange(1, 2)] |
107 metric.details_to_report = timeline.ReportMainThreadOnly | 107 metric.details_to_report = timeline.ReportMainThreadOnly |
108 results = self.GetResultsForModel(metric, model) | 108 results = self.GetResultsForModel(metric, model) |
109 | 109 |
110 # Test that all result thread categories exist | 110 # Test that all result thread categories exist |
111 for name in timeline.TimelineThreadCategories.values(): | 111 for name in timeline.TimelineThreadCategories.values(): |
112 results.GetPageSpecificValueNamed(timeline.ThreadTimeResultName(name)) | |
113 results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name)) | 112 results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name)) |
114 | 113 |
115 def testBasic(self): | 114 def testBasic(self): |
116 model = model_module.TimelineModel() | 115 model = model_module.TimelineModel() |
117 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) | 116 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
118 renderer_main.name = 'CrRendererMain' | 117 renderer_main.name = 'CrRendererMain' |
119 | 118 |
120 # Create two frame swaps (Results times should be divided by two) | 119 # Create two frame swaps (Results times should be divided by two) |
121 cc_main = model.GetOrCreateProcess(1).GetOrCreateThread(3) | 120 cc_main = model.GetOrCreateProcess(1).GetOrCreateThread(3) |
122 cc_main.name = 'Compositor' | 121 cc_main.name = 'Compositor' |
(...skipping 13 matching lines...) Expand all Loading... |
136 model.FinalizeImport() | 135 model.FinalizeImport() |
137 | 136 |
138 # Exclude 'Z' using an action-range. | 137 # Exclude 'Z' using an action-range. |
139 metric = timeline.ThreadTimesTimelineMetric() | 138 metric = timeline.ThreadTimesTimelineMetric() |
140 metric._action_ranges = [self.GetActionRange(10, 30)] | 139 metric._action_ranges = [self.GetActionRange(10, 30)] |
141 metric.details_to_report = timeline.ReportMainThreadOnly | 140 metric.details_to_report = timeline.ReportMainThreadOnly |
142 results = self.GetResultsForModel(metric, model) | 141 results = self.GetResultsForModel(metric, model) |
143 | 142 |
144 # Test a couple specific results. | 143 # Test a couple specific results. |
145 assert_results = { | 144 assert_results = { |
146 timeline.ThreadTimeResultName('renderer_main') : 10, | 145 timeline.ThreadCpuTimeResultName('renderer_main') : 9.75, |
147 timeline.ThreadDetailResultName('renderer_main','cat1') : 9.5, | 146 timeline.ThreadDetailResultName('renderer_main','cat1') : 9.5, |
148 timeline.ThreadDetailResultName('renderer_main','cat2') : 0.5, | 147 timeline.ThreadDetailResultName('renderer_main','cat2') : 0.5, |
149 timeline.ThreadDetailResultName('renderer_main','idle') : 0 | 148 timeline.ThreadDetailResultName('renderer_main','idle') : 0 |
150 } | 149 } |
151 for name, value in assert_results.iteritems(): | 150 for name, value in assert_results.iteritems(): |
152 results.AssertHasPageSpecificScalarValue(name, 'ms', value) | 151 results.AssertHasPageSpecificScalarValue(name, 'ms', value) |
153 | 152 |
154 def testOverheadIsRemoved(self): | 153 def testOverheadIsRemoved(self): |
155 model = model_module.TimelineModel() | 154 model = model_module.TimelineModel() |
156 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) | 155 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
(...skipping 16 matching lines...) Expand all Loading... |
173 model.FinalizeImport() | 172 model.FinalizeImport() |
174 | 173 |
175 # Include everything in an action-range. | 174 # Include everything in an action-range. |
176 metric = timeline.ThreadTimesTimelineMetric() | 175 metric = timeline.ThreadTimesTimelineMetric() |
177 metric._action_ranges = [self.GetActionRange(10, 30)] | 176 metric._action_ranges = [self.GetActionRange(10, 30)] |
178 metric.details_to_report = timeline.ReportMainThreadOnly | 177 metric.details_to_report = timeline.ReportMainThreadOnly |
179 results = self.GetResultsForModel(metric, model) | 178 results = self.GetResultsForModel(metric, model) |
180 | 179 |
181 # Test a couple specific results. | 180 # Test a couple specific results. |
182 assert_results = { | 181 assert_results = { |
183 timeline.ThreadTimeResultName('renderer_main') : 19, | |
184 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0, | 182 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0, |
185 } | 183 } |
186 for name, value in assert_results.iteritems(): | 184 for name, value in assert_results.iteritems(): |
187 results.AssertHasPageSpecificScalarValue(name, 'ms', value) | 185 results.AssertHasPageSpecificScalarValue(name, 'ms', value) |
OLD | NEW |