| 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 measurements import oilpan_gc_times | 5 from measurements import oilpan_gc_times |
| 6 | 6 |
| 7 from telemetry.core import util |
| 7 from telemetry.results import page_test_results | 8 from telemetry.results import page_test_results |
| 8 from telemetry.timeline import model | 9 from telemetry.timeline import model |
| 9 from telemetry.timeline import slice as slice_data | 10 from telemetry.timeline import slice as slice_data |
| 10 from telemetry.unittest_util import options_for_unittests | 11 from telemetry.unittest_util import options_for_unittests |
| 11 from telemetry.unittest_util import page_test_test_case | 12 from telemetry.unittest_util import page_test_test_case |
| 12 from telemetry.page import page as page_module | 13 from telemetry.page import page as page_module |
| 13 | 14 |
| 15 util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock') |
| 16 import mock # pylint: disable=import-error |
| 17 |
| 14 | 18 |
| 15 class TestOilpanGCTimesPage(page_module.Page): | 19 class TestOilpanGCTimesPage(page_module.Page): |
| 16 def __init__(self, page_set): | 20 def __init__(self, page_set): |
| 17 super(TestOilpanGCTimesPage, self).__init__( | 21 super(TestOilpanGCTimesPage, self).__init__( |
| 18 'file://blank.html', page_set, page_set.base_dir) | 22 'file://blank.html', page_set, page_set.base_dir) |
| 19 | 23 |
| 20 def RunPageInteractions(self, action_runner): | 24 def RunPageInteractions(self, action_runner): |
| 21 with action_runner.CreateGestureInteraction('ScrollAction'): | 25 with action_runner.CreateGestureInteraction('ScrollAction'): |
| 22 action_runner.ScrollPage() | 26 action_runner.ScrollPage() |
| 23 | 27 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 # pylint: disable=protected-access | 87 # pylint: disable=protected-access |
| 84 def testForParsingOldFormat(self): | 88 def testForParsingOldFormat(self): |
| 85 def getMetric(results, name): | 89 def getMetric(results, name): |
| 86 metrics = results.FindAllPageSpecificValuesNamed(name) | 90 metrics = results.FindAllPageSpecificValuesNamed(name) |
| 87 self.assertEquals(1, len(metrics)) | 91 self.assertEquals(1, len(metrics)) |
| 88 return metrics[0].GetBuildbotValue() | 92 return metrics[0].GetBuildbotValue() |
| 89 | 93 |
| 90 data = self._GenerateDataForParsingOldFormat() | 94 data = self._GenerateDataForParsingOldFormat() |
| 91 | 95 |
| 92 measurement = oilpan_gc_times._OilpanGCTimesBase() | 96 measurement = oilpan_gc_times._OilpanGCTimesBase() |
| 93 measurement._renderer_process = data._renderer_process | 97 |
| 94 measurement._timeline_model = data._model | 98 tab = mock.MagicMock() |
| 95 measurement.ValidateAndMeasurePage(None, None, data.results) | 99 with mock.patch( |
| 100 'measurements.oilpan_gc_times.TimelineModel') as MockTimelineModel: |
| 101 MockTimelineModel.return_value = data._model |
| 102 measurement.ValidateAndMeasurePage(None, tab, data.results) |
| 96 | 103 |
| 97 results = data.results | 104 results = data.results |
| 98 self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce'))) | 105 self.assertEquals(7, len(getMetric(results, 'oilpan_coalesce'))) |
| 99 self.assertEquals(3, len(getMetric(results, 'oilpan_precise_mark'))) | 106 self.assertEquals(3, len(getMetric(results, 'oilpan_precise_mark'))) |
| 100 self.assertEquals(3, len(getMetric(results, 'oilpan_precise_lazy_sweep'))) | 107 self.assertEquals(3, len(getMetric(results, 'oilpan_precise_lazy_sweep'))) |
| 101 self.assertEquals(3, len(getMetric(results, | 108 self.assertEquals(3, len(getMetric(results, |
| 102 'oilpan_precise_complete_sweep'))) | 109 'oilpan_precise_complete_sweep'))) |
| 103 self.assertEquals(1, len(getMetric(results, 'oilpan_conservative_mark'))) | 110 self.assertEquals(1, len(getMetric(results, 'oilpan_conservative_mark'))) |
| 104 self.assertEquals(1, len(getMetric(results, | 111 self.assertEquals(1, len(getMetric(results, |
| 105 'oilpan_conservative_lazy_sweep'))) | 112 'oilpan_conservative_lazy_sweep'))) |
| 106 self.assertEquals(1, len(getMetric(results, | 113 self.assertEquals(1, len(getMetric(results, |
| 107 'oilpan_conservative_complete_sweep'))) | 114 'oilpan_conservative_complete_sweep'))) |
| 108 self.assertEquals(2, len(getMetric(results, 'oilpan_forced_mark'))) | 115 self.assertEquals(2, len(getMetric(results, 'oilpan_forced_mark'))) |
| 109 self.assertEquals(2, len(getMetric(results, 'oilpan_forced_lazy_sweep'))) | 116 self.assertEquals(2, len(getMetric(results, 'oilpan_forced_lazy_sweep'))) |
| 110 self.assertEquals(2, len(getMetric(results, | 117 self.assertEquals(2, len(getMetric(results, |
| 111 'oilpan_forced_complete_sweep'))) | 118 'oilpan_forced_complete_sweep'))) |
| 112 | 119 |
| 113 # Disable for accessing private API of _OilpanGCTimesBase. | 120 # Disable for accessing private API of _OilpanGCTimesBase. |
| 114 # pylint: disable=protected-access | 121 # pylint: disable=protected-access |
| 115 def testForParsing(self): | 122 def testForParsing(self): |
| 116 def getMetric(results, name): | 123 def getMetric(results, name): |
| 117 metrics = results.FindAllPageSpecificValuesNamed(name) | 124 metrics = results.FindAllPageSpecificValuesNamed(name) |
| 118 self.assertEquals(1, len(metrics)) | 125 self.assertEquals(1, len(metrics)) |
| 119 return metrics[0].GetBuildbotValue() | 126 return metrics[0].GetBuildbotValue() |
| 120 | 127 |
| 121 data = self._GenerateDataForParsing() | 128 data = self._GenerateDataForParsing() |
| 122 | 129 |
| 123 measurement = oilpan_gc_times._OilpanGCTimesBase() | 130 measurement = oilpan_gc_times._OilpanGCTimesBase() |
| 124 measurement._renderer_process = data._renderer_process | |
| 125 measurement._timeline_model = data._model | 131 measurement._timeline_model = data._model |
| 126 measurement.ValidateAndMeasurePage(None, None, data.results) | 132 tab = mock.MagicMock() |
| 133 with mock.patch( |
| 134 'measurements.oilpan_gc_times.TimelineModel') as MockTimelineModel: |
| 135 MockTimelineModel.return_value = data._model |
| 136 measurement.ValidateAndMeasurePage(None, tab, data.results) |
| 127 | 137 |
| 128 results = data.results | 138 results = data.results |
| 129 self.assertEquals(8, len(getMetric(results, 'oilpan_coalesce'))) | 139 self.assertEquals(8, len(getMetric(results, 'oilpan_coalesce'))) |
| 130 self.assertEquals(4, len(getMetric(results, 'oilpan_precise_mark'))) | 140 self.assertEquals(4, len(getMetric(results, 'oilpan_precise_mark'))) |
| 131 self.assertEquals(4, len(getMetric(results, 'oilpan_precise_lazy_sweep'))) | 141 self.assertEquals(4, len(getMetric(results, 'oilpan_precise_lazy_sweep'))) |
| 132 self.assertEquals(4, len(getMetric(results, | 142 self.assertEquals(4, len(getMetric(results, |
| 133 'oilpan_precise_complete_sweep'))) | 143 'oilpan_precise_complete_sweep'))) |
| 134 self.assertEquals(4, len(getMetric(results, 'oilpan_conservative_mark'))) | 144 self.assertEquals(4, len(getMetric(results, 'oilpan_conservative_mark'))) |
| 135 self.assertEquals(4, len(getMetric(results, | 145 self.assertEquals(4, len(getMetric(results, |
| 136 'oilpan_conservative_lazy_sweep'))) | 146 'oilpan_conservative_lazy_sweep'))) |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 data.AddSlice(self._KEY_COMPLETE_SWEEP, 862, 42, {}) | 277 data.AddSlice(self._KEY_COMPLETE_SWEEP, 862, 42, {}) |
| 268 data.AddSlice(self._KEY_MARK, 904, 43, | 278 data.AddSlice(self._KEY_MARK, 904, 43, |
| 269 {'lazySweeping': False, 'gcReason': 'IdleGC'}) | 279 {'lazySweeping': False, 'gcReason': 'IdleGC'}) |
| 270 last_measure = data.AddSlice(self._KEY_COMPLETE_SWEEP, 947, 44, {}) | 280 last_measure = data.AddSlice(self._KEY_COMPLETE_SWEEP, 947, 44, {}) |
| 271 | 281 |
| 272 # Async event | 282 # Async event |
| 273 async_dur = last_measure.end - first_measure.start | 283 async_dur = last_measure.end - first_measure.start |
| 274 data.AddAsyncSlice(self._KEY_MEASURE, first_measure.start, async_dur, {}) | 284 data.AddAsyncSlice(self._KEY_MEASURE, first_measure.start, async_dur, {}) |
| 275 | 285 |
| 276 return data | 286 return data |
| OLD | NEW |