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

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

Issue 174663008: re-land: Use browser compositor rendering stats in smoothness (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Check if browser process is None. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/perf/metrics/rendering_stats.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/rendering_stats_unittest.py
diff --git a/tools/perf/metrics/rendering_stats_unittest.py b/tools/perf/metrics/rendering_stats_unittest.py
index 11f82b5ad3f14721748e8ec05679bff47d557038..4f00542f5ac224a78d7f397501fa1c7fd8021745 100644
--- a/tools/perf/metrics/rendering_stats_unittest.py
+++ b/tools/perf/metrics/rendering_stats_unittest.py
@@ -9,6 +9,7 @@ from metrics.rendering_stats import UI_COMP_NAME, BEGIN_COMP_NAME, END_COMP_NAME
from metrics.rendering_stats import GetScrollInputLatencyEvents
from metrics.rendering_stats import ComputeMouseWheelScrollLatency
from metrics.rendering_stats import ComputeTouchScrollLatency
+from metrics.rendering_stats import HasRenderingStats
from metrics.rendering_stats import RenderingStats
import telemetry.core.timeline.bounds as timeline_bounds
from telemetry.core.timeline import model
@@ -199,6 +200,30 @@ def AddInputLatencyStats(mock_timer, input_type, start_thread, end_thread,
(data[END_COMP_NAME]['time'] - data[UI_COMP_NAME]['time']) / 1000.0)
class RenderingStatsUnitTest(unittest.TestCase):
+ def testHasRenderingStats(self):
+ timeline = model.TimelineModel()
+ timer = MockTimer()
+
+ # A process without rendering stats
+ process_without_stats = timeline.GetOrCreateProcess(pid = 1)
+ thread_without_stats = process_without_stats.GetOrCreateThread(tid = 11)
+ process_without_stats.FinalizeImport()
+ self.assertFalse(HasRenderingStats(thread_without_stats))
+
+ # A process with rendering stats, but no frames in them
+ process_without_frames = timeline.GetOrCreateProcess(pid = 2)
+ thread_without_frames = process_without_frames.GetOrCreateThread(tid = 21)
+ AddMainThreadRenderingStats(timer, thread_without_frames, True, None)
+ process_without_frames.FinalizeImport()
+ self.assertFalse(HasRenderingStats(thread_without_frames))
+
+ # A process with rendering stats and frames in them
+ process_with_frames = timeline.GetOrCreateProcess(pid = 3)
+ thread_with_frames = process_with_frames.GetOrCreateThread(tid = 31)
+ AddImplThreadRenderingStats(timer, thread_with_frames, True, None)
+ process_with_frames.FinalizeImport()
+ self.assertTrue(HasRenderingStats(thread_with_frames))
+
def testFromTimeline(self):
timeline = model.TimelineModel()
@@ -220,10 +245,10 @@ class RenderingStatsUnitTest(unittest.TestCase):
ref_stats.AppendNewRange()
for i in xrange(0, 10):
first = (i == 0)
- AddMainThreadRenderingStats(timer, renderer_main, first, ref_stats)
- AddImplThreadRenderingStats(timer, renderer_compositor, first, ref_stats)
- AddMainThreadRenderingStats(timer, browser_main, first, None)
- AddImplThreadRenderingStats(timer, browser_compositor, first, None)
+ AddMainThreadRenderingStats(timer, renderer_main, first, None)
+ AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
+ AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
+ AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
renderer_main.EndSlice(timer.Get())
# Create 5 main and impl rendering stats events not within any action.
@@ -240,10 +265,10 @@ class RenderingStatsUnitTest(unittest.TestCase):
ref_stats.AppendNewRange()
for i in xrange(0, 10):
first = (i == 0)
- AddMainThreadRenderingStats(timer, renderer_main, first, ref_stats)
- AddImplThreadRenderingStats(timer, renderer_compositor, first, ref_stats)
- AddMainThreadRenderingStats(timer, browser_main, first, None)
- AddImplThreadRenderingStats(timer, browser_compositor, first, None)
+ AddMainThreadRenderingStats(timer, renderer_main, first, None)
+ AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
+ AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
+ AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
renderer_main.EndSlice(timer.Get())
# Create 10 main and impl rendering stats events for Action A.
@@ -252,14 +277,14 @@ class RenderingStatsUnitTest(unittest.TestCase):
ref_stats.AppendNewRange()
for i in xrange(0, 10):
first = (i == 0)
- AddMainThreadRenderingStats(timer, renderer_main, first, ref_stats)
- AddImplThreadRenderingStats(timer, renderer_compositor, first, ref_stats)
- AddMainThreadRenderingStats(timer, browser_main, first, None)
- AddImplThreadRenderingStats(timer, browser_compositor, first, None)
+ AddMainThreadRenderingStats(timer, renderer_main, first, None)
+ AddImplThreadRenderingStats(timer, renderer_compositor, first, None)
+ AddMainThreadRenderingStats(timer, browser_main, first, ref_stats)
+ AddImplThreadRenderingStats(timer, browser_compositor, first, ref_stats)
renderer_main.EndSlice(timer.Get())
- renderer_main.FinalizeImport()
- renderer_compositor.FinalizeImport()
+ browser.FinalizeImport()
+ renderer.FinalizeImport()
timeline_markers = timeline.FindTimelineMarkers(
['ActionA', 'ActionB', 'ActionA'])
@@ -267,6 +292,9 @@ class RenderingStatsUnitTest(unittest.TestCase):
for marker in timeline_markers ]
stats = RenderingStats(renderer, browser, timeline_ranges)
+ # Check if we are using the browser compositor's stats
+ self.assertEquals(stats.top_level_process, browser)
+
# Compare rendering stats to reference.
self.assertEquals(stats.frame_timestamps, ref_stats.frame_timestamps)
self.assertEquals(stats.frame_times, ref_stats.frame_times)
@@ -337,8 +365,8 @@ class RenderingStatsUnitTest(unittest.TestCase):
renderer_main, ref_latency_stats)
renderer_main.EndSlice(timer.Get())
- browser_main.FinalizeImport()
- renderer_main.FinalizeImport()
+ browser.FinalizeImport()
+ renderer.FinalizeImport()
mouse_wheel_scroll_events = []
touch_scroll_events = []
« no previous file with comments | « tools/perf/metrics/rendering_stats.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698