| 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 metric_unittest |
| 7 from metrics import timeline | 8 from metrics import timeline |
| 8 from telemetry.core.timeline import bounds | 9 from telemetry.core.timeline import bounds |
| 9 from telemetry.core.timeline import model as model_module | 10 from telemetry.core.timeline import model as model_module |
| 10 from telemetry.page import page as page_module | |
| 11 from telemetry.page import page_measurement_results | |
| 12 from telemetry.value import scalar | |
| 13 | |
| 14 class TestPageMeasurementResults( | |
| 15 page_measurement_results.PageMeasurementResults): | |
| 16 def __init__(self, test): | |
| 17 super(TestPageMeasurementResults, self).__init__() | |
| 18 self.test = test | |
| 19 page = page_module.Page("http://www.google.com", {}) | |
| 20 self.WillMeasurePage(page) | |
| 21 | |
| 22 def GetPageSpecificValueNamed(self, name): | |
| 23 values = [value for value in self.all_page_specific_values | |
| 24 if value.name == name] | |
| 25 assert len(values) == 1, 'Could not find value named %s' % name | |
| 26 return values[0] | |
| 27 | |
| 28 def AssertHasPageSpecificScalarValue(self, name, units, expected_value): | |
| 29 value = self.GetPageSpecificValueNamed(name) | |
| 30 self.test.assertEquals(units, value.units) | |
| 31 self.test.assertTrue(isinstance(value, scalar.ScalarValue)) | |
| 32 self.test.assertEquals(expected_value, value.value) | |
| 33 | |
| 34 def __str__(self): | |
| 35 return '\n'.join([repr(x) for x in self.all_page_specific_values]) | |
| 36 | 11 |
| 37 class LoadTimesTimelineMetric(unittest.TestCase): | 12 class LoadTimesTimelineMetric(unittest.TestCase): |
| 38 def GetResultsForModel(self, metric, model): | 13 def GetResultsForModel(self, metric, model): |
| 39 metric.model = model | 14 metric.model = model |
| 40 results = TestPageMeasurementResults(self) | 15 results = metric_unittest.TestPageMeasurementResults(self) |
| 41 tab = None | 16 tab = None |
| 42 metric.AddResults(tab, results) | 17 metric.AddResults(tab, results) |
| 43 return results | 18 return results |
| 44 | 19 |
| 45 def testSanitizing(self): | 20 def testSanitizing(self): |
| 46 model = model_module.TimelineModel() | 21 model = model_module.TimelineModel() |
| 47 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) | 22 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
| 48 renderer_main.name = 'CrRendererMain' | 23 renderer_main.name = 'CrRendererMain' |
| 49 | 24 |
| 50 # [ X ] | 25 # [ X ] |
| (...skipping 28 matching lines...) Expand all Loading... |
| 79 results = self.GetResultsForModel(metric, model) | 54 results = self.GetResultsForModel(metric, model) |
| 80 results.AssertHasPageSpecificScalarValue( | 55 results.AssertHasPageSpecificScalarValue( |
| 81 'cat_x_y', 'count', 3) | 56 'cat_x_y', 'count', 3) |
| 82 results.AssertHasPageSpecificScalarValue( | 57 results.AssertHasPageSpecificScalarValue( |
| 83 'cat_x_y_avg', 'count', 1.5) | 58 'cat_x_y_avg', 'count', 1.5) |
| 84 | 59 |
| 85 | 60 |
| 86 class ThreadTimesTimelineMetricUnittest(unittest.TestCase): | 61 class ThreadTimesTimelineMetricUnittest(unittest.TestCase): |
| 87 def GetResultsForModel(self, metric, model): | 62 def GetResultsForModel(self, metric, model): |
| 88 metric.model = model | 63 metric.model = model |
| 89 results = TestPageMeasurementResults(self) | 64 results = metric_unittest.TestPageMeasurementResults(self) |
| 90 tab = None | 65 tab = None |
| 91 metric.AddResults(tab, results) | 66 metric.AddResults(tab, results) |
| 92 return results | 67 return results |
| 93 | 68 |
| 94 def GetActionRange(self, start, end): | 69 def GetActionRange(self, start, end): |
| 95 action_range = bounds.Bounds() | 70 action_range = bounds.Bounds() |
| 96 action_range.AddValue(start) | 71 action_range.AddValue(start) |
| 97 action_range.AddValue(end) | 72 action_range.AddValue(end) |
| 98 return action_range | 73 return action_range |
| 99 | 74 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 metric._action_ranges = [self.GetActionRange(10, 30)] | 151 metric._action_ranges = [self.GetActionRange(10, 30)] |
| 177 metric.details_to_report = timeline.ReportMainThreadOnly | 152 metric.details_to_report = timeline.ReportMainThreadOnly |
| 178 results = self.GetResultsForModel(metric, model) | 153 results = self.GetResultsForModel(metric, model) |
| 179 | 154 |
| 180 # Test a couple specific results. | 155 # Test a couple specific results. |
| 181 assert_results = { | 156 assert_results = { |
| 182 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0, | 157 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0, |
| 183 } | 158 } |
| 184 for name, value in assert_results.iteritems(): | 159 for name, value in assert_results.iteritems(): |
| 185 results.AssertHasPageSpecificScalarValue(name, 'ms', value) | 160 results.AssertHasPageSpecificScalarValue(name, 'ms', value) |
| OLD | NEW |