| OLD | NEW |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 telemetry import decorators | |
| 6 from telemetry.internal.results import page_test_results | 5 from telemetry.internal.results import page_test_results |
| 7 from telemetry.page import page as page_module | 6 from telemetry.page import page as page_module |
| 8 from telemetry.testing import options_for_unittests | 7 from telemetry.testing import options_for_unittests |
| 9 from telemetry.testing import page_test_test_case | 8 from telemetry.testing import page_test_test_case |
| 10 from telemetry.timeline import model as model_module | 9 from telemetry.timeline import model as model_module |
| 11 from telemetry.util import wpr_modes | 10 from telemetry.util import wpr_modes |
| 12 | 11 |
| 13 from measurements import v8_gc_times | 12 from metrics import v8_gc_times_metric |
| 14 | 13 |
| 15 | 14 |
| 16 class V8GCTimesTestPageHelper(object): | 15 class V8GCTimesTestPageHelper(object): |
| 17 | 16 |
| 18 def __init__(self, page_set): | 17 def __init__(self, page_set): |
| 19 self._page_set = page_set | 18 self._page_set = page_set |
| 20 self._model = model_module.TimelineModel() | 19 self._model = model_module.TimelineModel() |
| 21 self._renderer_process = self._model.GetOrCreateProcess(1) | 20 self._renderer_process = self._model.GetOrCreateProcess(1) |
| 22 self._renderer_thread = self._renderer_process.GetOrCreateThread(2) | 21 self._renderer_thread = self._renderer_process.GetOrCreateThread(2) |
| 23 self._renderer_thread.name = 'CrRendererMain' | 22 self._renderer_thread.name = 'CrRendererMain' |
| (...skipping 15 matching lines...) Expand all Loading... |
| 39 | 38 |
| 40 def MeasureFakePage(self): | 39 def MeasureFakePage(self): |
| 41 # Create a fake page and add it to the page set. | 40 # Create a fake page and add it to the page set. |
| 42 results = page_test_results.PageTestResults() | 41 results = page_test_results.PageTestResults() |
| 43 page = V8GCTimesTestPageHelper.MockV8GCTimesPage(self._page_set) | 42 page = V8GCTimesTestPageHelper.MockV8GCTimesPage(self._page_set) |
| 44 self._page_set.AddStory(page) | 43 self._page_set.AddStory(page) |
| 45 | 44 |
| 46 # Pretend we're about to run the tests to silence lower level asserts. | 45 # Pretend we're about to run the tests to silence lower level asserts. |
| 47 results.WillRunPage(page) | 46 results.WillRunPage(page) |
| 48 | 47 |
| 49 v8_gc_times_metric = v8_gc_times.V8GCTimes() | 48 metric = v8_gc_times_metric.V8GCTimesMetric() |
| 50 # pylint: disable=protected-access | 49 # pylint: disable=protected-access |
| 51 v8_gc_times_metric._renderer_process = self._renderer_process | 50 metric._renderer_process = self._renderer_process |
| 52 | 51 |
| 53 # Finalize the timeline import. | 52 # Finalize the timeline import. |
| 54 self._model.FinalizeImport() | 53 self._model.FinalizeImport() |
| 55 | 54 |
| 56 # Measure the V8GCTimes metric and return the results | 55 # Measure the V8GCTimes metric and return the results |
| 57 # pylint: disable=protected-access | 56 # pylint: disable=protected-access |
| 58 v8_gc_times_metric._AddV8MetricsToResults(self._renderer_process, results) | 57 metric._AddV8MetricsToResults(self._renderer_process, results) |
| 59 results.DidRunPage(page) | 58 results.DidRunPage(page) |
| 60 return results | 59 return results |
| 61 | 60 |
| 62 | 61 |
| 63 class V8GCTimesTests(page_test_test_case.PageTestTestCase): | 62 class V8GCTimesTests(page_test_test_case.PageTestTestCase): |
| 64 | 63 |
| 65 def setUp(self): | 64 def setUp(self): |
| 66 self._options = options_for_unittests.GetCopy() | 65 self._options = options_for_unittests.GetCopy() |
| 67 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF | 66 self._options.browser_options.wpr_mode = wpr_modes.WPR_OFF |
| 68 | 67 |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 | 261 |
| 263 self._AssertResultsEqual(expected, _ActualValues(results)) | 262 self._AssertResultsEqual(expected, _ActualValues(results)) |
| 264 | 263 |
| 265 def _AssertResultsEqual(self, expected, actual): | 264 def _AssertResultsEqual(self, expected, actual): |
| 266 for key in expected.iterkeys(): | 265 for key in expected.iterkeys(): |
| 267 self.assertIn(key, actual.keys()) | 266 self.assertIn(key, actual.keys()) |
| 268 self.assertEqual(expected[key], actual[key], | 267 self.assertEqual(expected[key], actual[key], |
| 269 'Result for [' + key + '] - expected ' + str(expected[key]) + | 268 'Result for [' + key + '] - expected ' + str(expected[key]) + |
| 270 ' but got ' + str(actual[key])) | 269 ' but got ' + str(actual[key])) |
| 271 | 270 |
| 272 @decorators.Disabled('win') # crbug.com/416502 | |
| 273 def testCleanUpTrace(self): | |
| 274 self.TestTracingCleanedUp(v8_gc_times.V8GCTimes, self._options) | |
| 275 | |
| 276 | 271 |
| 277 def _ActualValues(results): | 272 def _ActualValues(results): |
| 278 return dict(list( | 273 return dict(list( |
| 279 (v.name, (v.units, v.value)) | 274 (v.name, (v.units, v.value)) |
| 280 for v in results.all_page_specific_values | 275 for v in results.all_page_specific_values |
| 281 )) | 276 )) |
| 282 | 277 |
| 283 | 278 |
| 284 def _GetEmptyResults(): | 279 def _GetEmptyResults(): |
| 285 return {'cpu_time': ('ms', 0.0), | 280 return {'cpu_time': ('ms', 0.0), |
| (...skipping 15 matching lines...) Expand all Loading... |
| 301 'v8_gc_scavenger': ('ms', 0.0), | 296 'v8_gc_scavenger': ('ms', 0.0), |
| 302 'v8_gc_scavenger_average': ('ms', 0.0), | 297 'v8_gc_scavenger_average': ('ms', 0.0), |
| 303 'v8_gc_scavenger_count': ('count', 0), | 298 'v8_gc_scavenger_count': ('count', 0), |
| 304 'v8_gc_scavenger_max': ('ms', 0.0), | 299 'v8_gc_scavenger_max': ('ms', 0.0), |
| 305 'v8_gc_scavenger_idle_deadline_overrun': ('ms', 0.0), | 300 'v8_gc_scavenger_idle_deadline_overrun': ('ms', 0.0), |
| 306 'v8_gc_scavenger_outside_idle': ('ms', 0.0), | 301 'v8_gc_scavenger_outside_idle': ('ms', 0.0), |
| 307 'v8_gc_scavenger_percentage_idle': ('idle%', 0.0), | 302 'v8_gc_scavenger_percentage_idle': ('idle%', 0.0), |
| 308 'v8_gc_total': ('ms', 0.0), | 303 'v8_gc_total': ('ms', 0.0), |
| 309 'v8_gc_total_idle_deadline_overrun': ('ms', 0.0), | 304 'v8_gc_total_idle_deadline_overrun': ('ms', 0.0), |
| 310 'v8_gc_total_outside_idle': ('ms', 0.0)} | 305 'v8_gc_total_outside_idle': ('ms', 0.0)} |
| OLD | NEW |