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

Unified Diff: tools/perf/metrics/timeline_unittest.py

Issue 1084533005: Support total and per-second task/threadtime timeline metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup Created 5 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 side-by-side diff with in-line comments
Download patch
« tools/perf/metrics/timeline.py ('K') | « tools/perf/metrics/timeline.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/perf/metrics/timeline_unittest.py
diff --git a/tools/perf/metrics/timeline_unittest.py b/tools/perf/metrics/timeline_unittest.py
index 5ae1a5d66fdc65e9e141fee500ae54cde962b0d2..e62e075c108b6bfa3afbc229e4d886595b626a63 100644
--- a/tools/perf/metrics/timeline_unittest.py
+++ b/tools/perf/metrics/timeline_unittest.py
@@ -109,7 +109,7 @@ class ThreadTimesTimelineMetricUnittest(unittest.TestCase):
# Test that all result thread categories exist
for name in timeline.TimelineThreadCategories.values():
- results.GetPageSpecificValueNamed(timeline.ThreadCpuTimeResultName(name))
+ results.GetPageSpecificValueNamed(metric.ThreadCpuTimeResultName(name))
def testBasic(self):
model = model_module.TimelineModel()
@@ -144,12 +144,12 @@ class ThreadTimesTimelineMetricUnittest(unittest.TestCase):
main_thread = "renderer_main"
cc_thread = 'renderer_compositor'
assert_results = [
- (timeline.ThreadCpuTimeResultName(main_thread), 'ms', 9.75),
- (timeline.ThreadTasksResultName(main_thread), 'tasks', 0.5),
- (timeline.ThreadMeanFrameTimeResultName(cc_thread), 'ms', 10.0),
- (timeline.ThreadDetailResultName(main_thread,'cat1'), 'ms', 9.5),
- (timeline.ThreadDetailResultName(main_thread,'cat2'), 'ms', 0.5),
- (timeline.ThreadDetailResultName(main_thread,'idle'), 'ms', 0)
+ (metric.ThreadCpuTimeResultName(main_thread), 'ms', 9.75),
+ (metric.ThreadTasksResultName(main_thread), 'tasks', 0.5),
+ (metric.ThreadFrameTimeResultName(cc_thread), 'ms', 10.0),
+ (metric.ThreadDetailResultName(main_thread,'cat1'), 'ms', 9.5),
+ (metric.ThreadDetailResultName(main_thread,'cat2'), 'ms', 0.5),
+ (metric.ThreadDetailResultName(main_thread,'idle'), 'ms', 0)
]
for name, unit, value in assert_results:
results.AssertHasPageSpecificScalarValue(name, unit, value)
@@ -183,7 +183,47 @@ class ThreadTimesTimelineMetricUnittest(unittest.TestCase):
# Test a couple specific results.
assert_results = {
- timeline.ThreadCpuTimeResultName('renderer_main') : 9.0,
+ metric.ThreadCpuTimeResultName('renderer_main') : 9.0,
}
for name, value in assert_results.iteritems():
results.AssertHasPageSpecificScalarValue(name, 'ms', value)
+
+ def testMeasureTotalThreadTime(self):
+ model = model_module.TimelineModel()
+ renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
+ renderer_main.name = 'CrRendererMain'
+
+ # Create two frame swaps (Results times should accumulate both frames)
+ cc_main = model.GetOrCreateProcess(1).GetOrCreateThread(3)
+ cc_main.name = 'Compositor'
+ cc_main.BeginSlice('cc_cat', timeline.FrameTraceName, 10, 10)
+ cc_main.EndSlice(11, 11)
+ cc_main.BeginSlice('cc_cat', timeline.FrameTraceName, 12, 12)
+ cc_main.EndSlice(13, 13)
+
+ # [ X ] [ Z ]
+ # [ Y ]
+ renderer_main.BeginSlice('cat1', 'X', 10, 0)
+ renderer_main.BeginSlice('cat2', 'Y', 15, 5)
+ renderer_main.EndSlice(16, 5.5)
+ renderer_main.BeginSlice('cat1', 'Z', 20, 9)
+ renderer_main.BeginSlice('cat1', 'Z', 21, 10)
+ renderer_main.EndSlice(30, 19.5)
+ model.FinalizeImport()
+
+ metric = timeline.ThreadTimesTimelineMetric(measure_per_frame=False)
+ metric.details_to_report = timeline.ReportMainThreadOnly
+ results = self.GetResults(metric, model, renderer_main.parent,
+ [_GetInteractionRecord(10, 30)])
+
+ # Test for the results we expect.
+ main_thread = "renderer_main"
+ cc_thread = 'renderer_compositor'
+ assert_results = [
+ (metric.ThreadCpuTimeResultName(main_thread), 'ms', 19.5),
+ (metric.ThreadTasksResultName(main_thread), 'tasks', 1.0),
+ (metric.ThreadFrameTimeResultName(cc_thread), 'ms', 20.0),
+ (metric.ThreadDetailResultName(main_thread,'cat1'), 'ms', 19.0),
+ (metric.ThreadDetailResultName(main_thread,'cat2'), 'ms', 1.0)]
+ for name, unit, value in assert_results:
+ results.AssertHasPageSpecificScalarValue(name, unit, value)
« tools/perf/metrics/timeline.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