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

Side by Side Diff: tools/perf/measurements/page_cycler_unittest.py

Issue 246453004: Telemetry: re-enable cpu metric for page_cycler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes unittest Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « tools/perf/measurements/page_cycler.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 telemetry.core import browser_options 7 from telemetry.core import browser_options
8 from telemetry.page import page_measurement_results 8 from telemetry.page import page_measurement_results
9 from telemetry.page import page_runner 9 from telemetry.page import page_runner
10 from telemetry.unittest import simple_mock 10 from telemetry.unittest import simple_mock
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 self.clear_cache_calls = 0 46 self.clear_cache_calls = 0
47 def ClearCache(self, force=False): 47 def ClearCache(self, force=False):
48 assert force 48 assert force
49 self.clear_cache_calls += 1 49 self.clear_cache_calls += 1
50 def EvaluateJavaScript(self, _): 50 def EvaluateJavaScript(self, _):
51 return 1 51 return 1
52 def WaitForJavaScriptExpression(self, _, __): 52 def WaitForJavaScriptExpression(self, _, __):
53 pass 53 pass
54 54
55 55
56 class FakeBrowser(object):
57 _iteration = 0
58
59 @property
60 def cpu_stats(self):
61 FakeBrowser._iteration += 1
62 return {
63 'Browser': {'CpuProcessTime': FakeBrowser._iteration,
64 'TotalTime': FakeBrowser._iteration * 2},
65 'Renderer': {'CpuProcessTime': FakeBrowser._iteration,
66 'TotalTime': FakeBrowser._iteration * 3},
67 'Gpu': {'CpuProcessTime': FakeBrowser._iteration,
68 'TotalTime': FakeBrowser._iteration * 4}
69 }
70
71
56 class PageCyclerUnitTest(unittest.TestCase): 72 class PageCyclerUnitTest(unittest.TestCase):
57 73
58 def SetUpCycler(self, args, setup_memory_module=False): 74 def SetUpCycler(self, args, setup_memory_module=False):
59 cycler = page_cycler.PageCycler() 75 cycler = page_cycler.PageCycler()
60 options = browser_options.BrowserFinderOptions() 76 options = browser_options.BrowserFinderOptions()
61 parser = options.CreateParser() 77 parser = options.CreateParser()
62 page_runner.AddCommandLineArgs(parser) 78 page_runner.AddCommandLineArgs(parser)
63 cycler.AddCommandLineArgs(parser) 79 cycler.AddCommandLineArgs(parser)
64 cycler.SetArgumentDefaults(parser) 80 cycler.SetArgumentDefaults(parser)
65 parser.parse_args(args) 81 parser.parse_args(args)
66 page_runner.ProcessCommandLineArgs(parser, options) 82 page_runner.ProcessCommandLineArgs(parser, options)
67 cycler.ProcessCommandLineArgs(parser, options) 83 cycler.ProcessCommandLineArgs(parser, options)
68 cycler.CustomizeBrowserOptions(options) 84 cycler.CustomizeBrowserOptions(options)
69 85
70 if setup_memory_module: 86 if setup_memory_module:
71 # Mock out memory metrics; the real ones require a real browser. 87 # Mock out memory metrics; the real ones require a real browser.
72 mock_memory_metric = MockMemoryMetric() 88 mock_memory_metric = MockMemoryMetric()
73 89
74 mock_memory_module = simple_mock.MockObject() 90 mock_memory_module = simple_mock.MockObject()
75 mock_memory_module.ExpectCall( 91 mock_memory_module.ExpectCall(
76 'MemoryMetric').WithArgs(simple_mock.DONT_CARE).WillReturn( 92 'MemoryMetric').WithArgs(simple_mock.DONT_CARE).WillReturn(
77 mock_memory_metric) 93 mock_memory_metric)
78 94
79 real_memory_module = page_cycler.memory 95 real_memory_module = page_cycler.memory
80 try: 96 try:
81 page_cycler.memory = mock_memory_module 97 page_cycler.memory = mock_memory_module
82 cycler.DidStartBrowser(None) 98 cycler.DidStartBrowser(FakeBrowser())
83 finally: 99 finally:
84 page_cycler.memory = real_memory_module 100 page_cycler.memory = real_memory_module
85 101
86 return cycler 102 return cycler
87 103
88 def testOptionsColdLoadNoArgs(self): 104 def testOptionsColdLoadNoArgs(self):
89 cycler = self.SetUpCycler([]) 105 cycler = self.SetUpCycler([])
90 106
91 self.assertEquals(cycler._cold_run_start_index, 5) 107 self.assertEquals(cycler._cold_run_start_index, 5)
92 108
(...skipping 22 matching lines...) Expand all
115 cycler.WillNavigateToPage(page, tab) 131 cycler.WillNavigateToPage(page, tab)
116 self.assertEqual(max(0, i - 2), tab.clear_cache_calls, 132 self.assertEqual(max(0, i - 2), tab.clear_cache_calls,
117 "Iteration %d tab.clear_cache_calls %d" % 133 "Iteration %d tab.clear_cache_calls %d" %
118 (i, tab.clear_cache_calls)) 134 (i, tab.clear_cache_calls))
119 results.WillMeasurePage(page) 135 results.WillMeasurePage(page)
120 cycler.MeasurePage(page, tab, results) 136 cycler.MeasurePage(page, tab, results)
121 137
122 values = results.page_specific_values_for_current_page 138 values = results.page_specific_values_for_current_page
123 results.DidMeasurePage() 139 results.DidMeasurePage()
124 140
125 self.assertEqual(1, len(values)) 141 self.assertEqual(4, len(values))
126 self.assertEqual(values[0].page, page) 142 self.assertEqual(values[0].page, page)
bulach 2014/04/23 17:11:47 please advise: note that here and the test below,
qyearsley 2014/04/23 18:13:38 My thoughts are that this CL LGTM as is. But, in t
bulach 2014/04/24 08:57:00 sgtm! I'll CQ this as is and send you a separate C
143 self.assertEqual(values[1].name,
144 'cpu_utilization.cpu_utilization_gpu')
145 self.assertEqual(values[2].name,
146 'cpu_utilization.cpu_utilization_renderer')
147 self.assertEqual(values[3].name,
148 'cpu_utilization.cpu_utilization_browser')
149
127 150
128 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times' 151 chart_name = 'cold_times' if i == 0 or i > 2 else 'warm_times'
129 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) 152 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name)
130 self.assertEqual(values[0].units, 'ms') 153 self.assertEqual(values[0].units, 'ms')
131 154
132 cycler.DidNavigateToPage(page, tab) 155 cycler.DidNavigateToPage(page, tab)
133 156
134 def testColdWarm(self): 157 def testColdWarm(self):
135 cycler = self.SetUpCycler(['--pageset-repeat=3'], True) 158 cycler = self.SetUpCycler(['--pageset-repeat=3'], True)
136 pages = [FakePage("http://fakepage1.com"), FakePage("http://fakepage2.com")] 159 pages = [FakePage("http://fakepage1.com"), FakePage("http://fakepage2.com")]
137 tab = FakeTab() 160 tab = FakeTab()
138 results = page_measurement_results.PageMeasurementResults() 161 results = page_measurement_results.PageMeasurementResults()
139 for i in range(3): 162 for i in range(3):
140 for page in pages: 163 for page in pages:
141 cycler.WillNavigateToPage(page, tab) 164 cycler.WillNavigateToPage(page, tab)
142 results.WillMeasurePage(page) 165 results.WillMeasurePage(page)
143 cycler.MeasurePage(page, tab, results) 166 cycler.MeasurePage(page, tab, results)
144 167
145 values = results.page_specific_values_for_current_page 168 values = results.page_specific_values_for_current_page
146 results.DidMeasurePage() 169 results.DidMeasurePage()
147 170
148 self.assertEqual(1, len(values)) 171 self.assertEqual(4, len(values))
149 self.assertEqual(values[0].page, page) 172 self.assertEqual(values[0].page, page)
150 173
151 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times' 174 chart_name = 'cold_times' if i == 0 or i > 1 else 'warm_times'
152 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name) 175 self.assertEqual(values[0].name, '%s.page_load_time' % chart_name)
176 self.assertEqual(values[1].name,
177 'cpu_utilization.cpu_utilization_gpu')
178 self.assertEqual(values[2].name,
179 'cpu_utilization.cpu_utilization_renderer')
180 self.assertEqual(values[3].name,
181 'cpu_utilization.cpu_utilization_browser')
153 182
154 cycler.DidNavigateToPage(page, tab) 183 cycler.DidNavigateToPage(page, tab)
OLDNEW
« no previous file with comments | « tools/perf/measurements/page_cycler.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698