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

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

Issue 191383003: First cut of chrome-proxy (data reduction proxy) measurements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 9 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 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 metrics import metric_unittest
7 from metrics import timeline 8 from metrics import timeline
8 from telemetry.core.timeline import bounds 9 from telemetry.core.timeline import bounds
9 from telemetry.core.timeline import model as model_module 10 from telemetry.core.timeline import model as model_module
10 from telemetry.page import page as page_module
11 from telemetry.page import page_measurement_results
12 from telemetry.value import scalar
13
14 class TestPageMeasurementResults(
15 page_measurement_results.PageMeasurementResults):
16 def __init__(self, test):
17 super(TestPageMeasurementResults, self).__init__()
18 self.test = test
19 page = page_module.Page("http://www.google.com", {})
20 self.WillMeasurePage(page)
21
22 def GetPageSpecificValueNamed(self, name):
23 values = [value for value in self.all_page_specific_values
24 if value.name == name]
25 assert len(values) == 1, 'Could not find value named %s' % name
26 return values[0]
27
28 def AssertHasPageSpecificScalarValue(self, name, units, expected_value):
29 value = self.GetPageSpecificValueNamed(name)
30 self.test.assertEquals(units, value.units)
31 self.test.assertTrue(isinstance(value, scalar.ScalarValue))
32 self.test.assertEquals(expected_value, value.value)
33
34 def __str__(self):
35 return '\n'.join([repr(x) for x in self.all_page_specific_values])
36 11
37 class LoadTimesTimelineMetric(unittest.TestCase): 12 class LoadTimesTimelineMetric(unittest.TestCase):
38 def GetResultsForModel(self, metric, model): 13 def GetResultsForModel(self, metric, model):
39 metric.model = model 14 metric.model = model
40 results = TestPageMeasurementResults(self) 15 results = metric_unittest.TestPageMeasurementResults(self)
41 tab = None 16 tab = None
42 metric.AddResults(tab, results) 17 metric.AddResults(tab, results)
43 return results 18 return results
44 19
45 def testSanitizing(self): 20 def testSanitizing(self):
46 model = model_module.TimelineModel() 21 model = model_module.TimelineModel()
47 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) 22 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
48 renderer_main.name = 'CrRendererMain' 23 renderer_main.name = 'CrRendererMain'
49 24
50 # [ X ] 25 # [ X ]
(...skipping 28 matching lines...) Expand all
79 results = self.GetResultsForModel(metric, model) 54 results = self.GetResultsForModel(metric, model)
80 results.AssertHasPageSpecificScalarValue( 55 results.AssertHasPageSpecificScalarValue(
81 'cat_x_y', 'count', 3) 56 'cat_x_y', 'count', 3)
82 results.AssertHasPageSpecificScalarValue( 57 results.AssertHasPageSpecificScalarValue(
83 'cat_x_y_avg', 'count', 1.5) 58 'cat_x_y_avg', 'count', 1.5)
84 59
85 60
86 class ThreadTimesTimelineMetricUnittest(unittest.TestCase): 61 class ThreadTimesTimelineMetricUnittest(unittest.TestCase):
87 def GetResultsForModel(self, metric, model): 62 def GetResultsForModel(self, metric, model):
88 metric.model = model 63 metric.model = model
89 results = TestPageMeasurementResults(self) 64 results = metric_unittest.TestPageMeasurementResults(self)
90 tab = None 65 tab = None
91 metric.AddResults(tab, results) 66 metric.AddResults(tab, results)
92 return results 67 return results
93 68
94 def GetActionRange(self, start, end): 69 def GetActionRange(self, start, end):
95 action_range = bounds.Bounds() 70 action_range = bounds.Bounds()
96 action_range.AddValue(start) 71 action_range.AddValue(start)
97 action_range.AddValue(end) 72 action_range.AddValue(end)
98 return action_range 73 return action_range
99 74
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 metric._action_ranges = [self.GetActionRange(10, 30)] 151 metric._action_ranges = [self.GetActionRange(10, 30)]
177 metric.details_to_report = timeline.ReportMainThreadOnly 152 metric.details_to_report = timeline.ReportMainThreadOnly
178 results = self.GetResultsForModel(metric, model) 153 results = self.GetResultsForModel(metric, model)
179 154
180 # Test a couple specific results. 155 # Test a couple specific results.
181 assert_results = { 156 assert_results = {
182 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0, 157 timeline.ThreadCpuTimeResultName('renderer_main') : 9.0,
183 } 158 }
184 for name, value in assert_results.iteritems(): 159 for name, value in assert_results.iteritems():
185 results.AssertHasPageSpecificScalarValue(name, 'ms', value) 160 results.AssertHasPageSpecificScalarValue(name, 'ms', value)
OLDNEW
« tools/perf/metrics/metric_unittest.py ('K') | « tools/perf/metrics/network_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698