| 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 |