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 |