Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(467)

Side by Side Diff: tools/perf/metrics/v8_gc_times_metric_unittest.py

Issue 1400083003: Convert V8GCTimes measurement to timeline based measurement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix copyright date Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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)}
OLDNEW
« tools/perf/measurements/v8_gc_times.py ('K') | « tools/perf/metrics/v8_gc_times_metric.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698