OLD | NEW |
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 timeline | 7 from metrics import timeline |
8 from telemetry.core.timeline import model as model_module | 8 from telemetry.core.timeline import model as model_module |
9 from telemetry.page import page as page_module | 9 from telemetry.page import page as page_module |
10 from telemetry.page import page_measurement_results | 10 from telemetry.page import page_measurement_results |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 tab = None | 70 tab = None |
71 metric.AddResults(tab, results) | 71 metric.AddResults(tab, results) |
72 return results | 72 return results |
73 | 73 |
74 def testBasic(self): | 74 def testBasic(self): |
75 model = model_module.TimelineModel() | 75 model = model_module.TimelineModel() |
76 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) | 76 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
77 renderer_main.name = 'CrRendererMain' | 77 renderer_main.name = 'CrRendererMain' |
78 | 78 |
79 # Create two frame swaps (Results times should be divided by two) | 79 # Create two frame swaps (Results times should be divided by two) |
80 gpu_main = model.GetOrCreateProcess(1).GetOrCreateThread(3) | 80 cc_main = model.GetOrCreateProcess(1).GetOrCreateThread(3) |
81 gpu_main.name = 'CrGpuMain' | 81 cc_main.name = 'Compositor' |
82 gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 10, 10) | 82 cc_main.BeginSlice('cc_cat', timeline.CompositorFrameTraceName, 10, 10) |
83 gpu_main.EndSlice(11, 11) | 83 cc_main.EndSlice(11, 11) |
84 gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 12, 12) | 84 cc_main.BeginSlice('cc_cat', timeline.CompositorFrameTraceName, 12, 12) |
85 gpu_main.EndSlice(13, 13) | 85 cc_main.EndSlice(13, 13) |
86 | 86 |
87 # [ X ] | 87 # [ X ] |
88 # [ Y ] | 88 # [ Y ] |
89 renderer_main.BeginSlice('cat1', 'X', 10, 0) | 89 renderer_main.BeginSlice('cat1', 'X', 10, 0) |
90 renderer_main.BeginSlice('cat2', 'Y', 15, 5) | 90 renderer_main.BeginSlice('cat2', 'Y', 15, 5) |
91 renderer_main.EndSlice(16, 0.5) | 91 renderer_main.EndSlice(16, 0.5) |
92 renderer_main.EndSlice(30, 19.5) | 92 renderer_main.EndSlice(30, 19.5) |
93 model.FinalizeImport() | 93 model.FinalizeImport() |
94 | 94 |
95 metric = timeline.ThreadTimesTimelineMetric() | 95 metric = timeline.ThreadTimesTimelineMetric() |
96 metric.details_to_report = timeline.MainThread | 96 metric.details_to_report = timeline.MainThread |
97 results = self.GetResultsForModel(metric, model) | 97 results = self.GetResultsForModel(metric, model) |
98 | 98 |
99 # Test that all categories exist | 99 # Test that all categories exist |
100 for name in timeline.TimelineThreadCategories.values(): | 100 for name in timeline.TimelineThreadCategories.values(): |
101 results.GetPageSpecificValueNamed(timeline.ThreadTimeResultName(name)) | 101 results.GetPageSpecificValueNamed(timeline.ThreadTimeResultName(name)) |
102 results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name)) | 102 results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name)) |
103 | 103 |
104 # Test a couple specific results. | 104 # Test a couple specific results. |
105 assert_results = { | 105 assert_results = { |
106 timeline.ThreadTimeResultName('renderer_main') : 10, | 106 timeline.ThreadTimeResultName('renderer_main') : 10, |
107 timeline.ThreadDetailResultName('renderer_main','cat1') : 9.5, | 107 timeline.ThreadDetailResultName('renderer_main','cat1') : 9.5, |
108 timeline.ThreadDetailResultName('renderer_main','cat2') : 0.5, | 108 timeline.ThreadDetailResultName('renderer_main','cat2') : 0.5, |
109 timeline.ThreadDetailResultName('renderer_main','idle') : 0 | 109 timeline.ThreadDetailResultName('renderer_main','idle') : 0 |
110 } | 110 } |
111 for name, value in assert_results.iteritems(): | 111 for name, value in assert_results.iteritems(): |
112 results.AssertHasPageSpecificScalarValue(name, 'ms', value) | 112 results.AssertHasPageSpecificScalarValue(name, 'ms', value) |
OLD | NEW |