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

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

Issue 138923004: Telemetry: Normalize fast-path results with frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Customize silk/fastpath results. Created 6 years, 11 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 2014 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
11 from telemetry.value import scalar 11 from telemetry.value import scalar
(...skipping 27 matching lines...) Expand all
39 results = TestPageMeasurementResults(self) 39 results = TestPageMeasurementResults(self)
40 tab = None 40 tab = None
41 metric.AddResults(tab, results) 41 metric.AddResults(tab, results)
42 return results 42 return results
43 43
44 def testBasic(self): 44 def testBasic(self):
45 model = model_module.TimelineModel() 45 model = model_module.TimelineModel()
46 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) 46 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
47 renderer_main.name = 'CrRendererMain' 47 renderer_main.name = 'CrRendererMain'
48 48
49 # Create two frame swaps (Results times should be divided by two)
50 gpu_main = model.GetOrCreateProcess(1).GetOrCreateThread(3)
51 gpu_main.name = 'CrGPUMain'
52 gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 10, 10)
53 gpu_main.EndSlice(11, 11)
54 gpu_main.BeginSlice('gpucat', ':RealSwapBuffers', 12, 12)
55 gpu_main.EndSlice(13, 13)
56
49 # [ X ] 57 # [ X ]
50 # [ Y ] 58 # [ Y ]
51 renderer_main.BeginSlice('cat1', 'X', 10, 0) 59 renderer_main.BeginSlice('cat1', 'X', 10, 0)
52 renderer_main.BeginSlice('cat2', 'Y', 15, 5) 60 renderer_main.BeginSlice('cat2', 'Y', 15, 5)
53 renderer_main.EndSlice(16, 0.5) 61 renderer_main.EndSlice(16, 0.5)
54 renderer_main.EndSlice(30, 19.5) 62 renderer_main.EndSlice(30, 19.5)
55 model.FinalizeImport() 63 model.FinalizeImport()
56 64
57 metric = timeline.ThreadTimesTimelineMetric() 65 metric = timeline.ThreadTimesTimelineMetric()
58 metric.report_renderer_main_details = True 66 metric.details_to_report = timeline.MainThread
59 results = self.GetResultsForModel(metric, model)
60 results.AssertHasPageSpecificScalarValue(
61 'thread_renderer_main_clock_time_percentage', '%', 100)
62 results.AssertHasPageSpecificScalarValue(
63 'renderer_main|cat1', 'ms', 19)
64 results.AssertHasPageSpecificScalarValue(
65 'renderer_main|cat2', 'ms', 1)
66 results.AssertHasPageSpecificScalarValue(
67 'renderer_main|idle', 'ms', 0)
68
69 def testPercentage(self):
70 model = model_module.TimelineModel()
71 renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
72 renderer_main.name = 'CrRendererMain'
73
74 # [ X ] [ Z ]
75 # X is 20ms, then 10ms delay, then Z is 10ms
76 renderer_main.BeginSlice('cat', 'X', 10, 0)
77 renderer_main.EndSlice(30, 19.5)
78 renderer_main.BeginSlice('cat', 'Z', 40, 20)
79 renderer_main.EndSlice(50, 30)
80 model.FinalizeImport()
81
82 metric = timeline.ThreadTimesTimelineMetric()
83 metric.report_renderer_main_details = True
84 results = self.GetResultsForModel(metric, model) 67 results = self.GetResultsForModel(metric, model)
85 68
86 results.AssertHasPageSpecificScalarValue( 69 # Test that all categories exist
87 'thread_renderer_main_clock_time_percentage', '%', 75) 70 for name in timeline.TimelineThreadCategories.values():
88 results.AssertHasPageSpecificScalarValue( 71 results.GetPageSpecificValueNamed(timeline.ThreadTimeResultName(name))
89 'renderer_main|cat', 'ms', 30) 72 results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name))
90 results.AssertHasPageSpecificScalarValue( 73
91 'renderer_main|idle', 'ms', 10) 74 # Test a couple specific results.
75 assert_results = {
76 timeline.ThreadTimeResultName('renderer_main') : 10,
77 timeline.ThreadDetailResultName('renderer_main','cat1') : 9.5,
78 timeline.ThreadDetailResultName('renderer_main','cat2') : 0.5,
79 timeline.ThreadDetailResultName('renderer_main','idle') : 0
80 }
81 for name, value in assert_results.iteritems():
82 results.AssertHasPageSpecificScalarValue(name, 'ms', value)
OLDNEW
« tools/perf/benchmarks/silk.py ('K') | « tools/perf/metrics/timeline.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698