summaryrefslogtreecommitdiffstats
path: root/tools/perf/benchmarks/smoothness.py
diff options
context:
space:
mode:
authorjdduke <jdduke@chromium.org>2015-09-28 09:55:35 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-28 16:57:14 +0000
commit49f9ceeed4bacade3ce7d361642f949deef280e1 (patch)
tree968db57fa92baf7cf25b2b8dd09b6d0f36d61d02 /tools/perf/benchmarks/smoothness.py
parent99801a6eafecf0aeef1e82e1241eb06af1f0eae7 (diff)
downloadchromium_src-49f9ceeed4bacade3ce7d361642f949deef280e1.zip
chromium_src-49f9ceeed4bacade3ce7d361642f949deef280e1.tar.gz
chromium_src-49f9ceeed4bacade3ce7d361642f949deef280e1.tar.bz2
Allow lack of 'first_gesture_scroll_update_latency' in smoothness tests
Not all smoothness benchmarks perform gesture scrolling, for which cases no 'first_gesture_scroll_update_latency' values are produced. This lack of value(s) is treated by the dashboard as a failure, which in turn prevents aggregate metric computation for the corresponding page set. BUG=534549 Review URL: https://codereview.chromium.org/1367953003 Cr-Commit-Position: refs/heads/master@{#351088}
Diffstat (limited to 'tools/perf/benchmarks/smoothness.py')
-rw-r--r--tools/perf/benchmarks/smoothness.py118
1 files changed, 55 insertions, 63 deletions
diff --git a/tools/perf/benchmarks/smoothness.py b/tools/perf/benchmarks/smoothness.py
index 6021c4a..0dd6d9a 100644
--- a/tools/perf/benchmarks/smoothness.py
+++ b/tools/perf/benchmarks/smoothness.py
@@ -11,12 +11,35 @@ import page_sets.key_silk_cases
from telemetry import benchmark
-class SmoothnessTop25(perf_benchmark.PerfBenchmark):
+class _Smoothness(perf_benchmark.PerfBenchmark):
+ """Base class for smoothness-based benchmarks."""
+
+ # Certain smoothness pages do not perform gesture scrolling, in turn yielding
+ # an empty first_gesture_scroll_update_latency result. Such empty results
+ # should be ignored, allowing aggregate metrics for that page set.
+ _PAGES_WITHOUT_SCROLL_GESTURE_BLACKLIST = [
+ 'http://mobile-news.sandbox.google.com/news/pt0']
+
+ test = smoothness.Smoothness
+
+ @classmethod
+ def Name(cls):
+ return 'smoothness'
+
+ @classmethod
+ def ValueCanBeAddedPredicate(cls, value, _):
+ if (value.name == 'first_gesture_scroll_update_latency' and
+ value.page.url in cls._PAGES_WITHOUT_SCROLL_GESTURE_BLACKLIST and
+ value.values is None):
+ return False
+ return True
+
+
+class SmoothnessTop25(_Smoothness):
"""Measures rendering statistics while scrolling down the top 25 web pages.
http://www.chromium.org/developers/design-documents/rendering-benchmarks
"""
- test = smoothness.Smoothness
page_set = page_sets.Top25SmoothPageSet
@classmethod
@@ -24,12 +47,11 @@ class SmoothnessTop25(perf_benchmark.PerfBenchmark):
return 'smoothness.top_25_smooth'
-class SmoothnessToughFiltersCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughFiltersCases(_Smoothness):
"""Measures frame rate and a variety of other statistics.
Uses a selection of pages making use of SVG and CSS Filter Effects.
"""
- test = smoothness.Smoothness
page_set = page_sets.ToughFiltersCasesPageSet
@classmethod
@@ -37,11 +59,10 @@ class SmoothnessToughFiltersCases(perf_benchmark.PerfBenchmark):
return 'smoothness.tough_filters_cases'
-class SmoothnessToughPathRenderingCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughPathRenderingCases(_Smoothness):
"""Tests a selection of pages with SVG and 2D Canvas paths.
Measures frame rate and a variety of other statistics. """
- test = smoothness.Smoothness
page_set = page_sets.ToughPathRenderingCasesPageSet
@classmethod
@@ -50,12 +71,11 @@ class SmoothnessToughPathRenderingCases(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('android') # crbug.com/526901
-class SmoothnessToughCanvasCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughCanvasCases(_Smoothness):
"""Measures frame rate and a variety of other statistics.
Uses a selection of pages making use of the 2D Canvas API.
"""
- test = smoothness.Smoothness
page_set = page_sets.ToughCanvasCasesPageSet
@classmethod
@@ -64,8 +84,7 @@ class SmoothnessToughCanvasCases(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('android') # crbug.com/373812
-class SmoothnessToughWebGLCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessToughWebGLCases(_Smoothness):
page_set = page_sets.ToughWebglCasesPageSet
@classmethod
@@ -83,8 +102,7 @@ class SmoothnessMaps(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('android')
-class SmoothnessKeyDesktopMoveCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessKeyDesktopMoveCases(_Smoothness):
page_set = page_sets.KeyDesktopMoveCasesPageSet
@classmethod
@@ -93,12 +111,11 @@ class SmoothnessKeyDesktopMoveCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessKeyMobileSites(perf_benchmark.PerfBenchmark):
+class SmoothnessKeyMobileSites(_Smoothness):
"""Measures rendering statistics while scrolling down the key mobile sites.
http://www.chromium.org/developers/design-documents/rendering-benchmarks
"""
- test = smoothness.Smoothness
page_set = page_sets.KeyMobileSitesSmoothPageSet
@classmethod
@@ -106,7 +123,7 @@ class SmoothnessKeyMobileSites(perf_benchmark.PerfBenchmark):
return 'smoothness.key_mobile_sites_smooth'
-class SmoothnessToughAnimationCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughAnimationCases(_Smoothness):
test = smoothness.SmoothnessWithRestart
page_set = page_sets.ToughAnimationCasesPageSet
@@ -116,11 +133,10 @@ class SmoothnessToughAnimationCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessKeySilkCases(perf_benchmark.PerfBenchmark):
+class SmoothnessKeySilkCases(_Smoothness):
"""Measures rendering statistics for the key silk cases without GPU
rasterization.
"""
- test = smoothness.Smoothness
page_set = page_sets.KeySilkCasesPageSet
@classmethod
@@ -138,11 +154,10 @@ class SmoothnessKeySilkCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessGpuRasterizationTop25(perf_benchmark.PerfBenchmark):
+class SmoothnessGpuRasterizationTop25(_Smoothness):
"""Measures rendering statistics for the top 25 with GPU rasterization.
"""
tag = 'gpu_rasterization'
- test = smoothness.Smoothness
page_set = page_sets.Top25SmoothPageSet
def SetExtraBrowserOptions(self, options):
@@ -154,12 +169,11 @@ class SmoothnessGpuRasterizationTop25(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessGpuRasterizationKeyMobileSites(perf_benchmark.PerfBenchmark):
+class SmoothnessGpuRasterizationKeyMobileSites(_Smoothness):
"""Measures rendering statistics for the key mobile sites with GPU
rasterization.
"""
tag = 'gpu_rasterization'
- test = smoothness.Smoothness
page_set = page_sets.KeyMobileSitesSmoothPageSet
def SetExtraBrowserOptions(self, options):
@@ -170,13 +184,11 @@ class SmoothnessGpuRasterizationKeyMobileSites(perf_benchmark.PerfBenchmark):
return 'smoothness.gpu_rasterization.key_mobile_sites_smooth'
-class SmoothnessGpuRasterizationToughPathRenderingCases(
- perf_benchmark.PerfBenchmark):
+class SmoothnessGpuRasterizationToughPathRenderingCases(_Smoothness):
"""Tests a selection of pages with SVG and 2D canvas paths with GPU
rasterization.
"""
tag = 'gpu_rasterization'
- test = smoothness.Smoothness
page_set = page_sets.ToughPathRenderingCasesPageSet
def SetExtraBrowserOptions(self, options):
@@ -187,12 +199,11 @@ class SmoothnessGpuRasterizationToughPathRenderingCases(
return 'smoothness.gpu_rasterization.tough_path_rendering_cases'
-class SmoothnessGpuRasterizationFiltersCases(perf_benchmark.PerfBenchmark):
+class SmoothnessGpuRasterizationFiltersCases(_Smoothness):
"""Tests a selection of pages with SVG and CSS filter effects with GPU
rasterization.
"""
tag = 'gpu_rasterization'
- test = smoothness.Smoothness
page_set = page_sets.ToughFiltersCasesPageSet
def SetExtraBrowserOptions(self, options):
@@ -204,12 +215,11 @@ class SmoothnessGpuRasterizationFiltersCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessSyncScrollKeyMobileSites(perf_benchmark.PerfBenchmark):
+class SmoothnessSyncScrollKeyMobileSites(_Smoothness):
"""Measures rendering statistics for the key mobile sites with synchronous
(main thread) scrolling.
"""
tag = 'sync_scroll'
- test = smoothness.Smoothness
page_set = page_sets.KeyMobileSitesSmoothPageSet
def SetExtraBrowserOptions(self, options):
@@ -221,10 +231,9 @@ class SmoothnessSyncScrollKeyMobileSites(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessSimpleMobilePages(perf_benchmark.PerfBenchmark):
+class SmoothnessSimpleMobilePages(_Smoothness):
"""Measures rendering statistics for simple mobile sites page set.
"""
- test = smoothness.Smoothness
page_set = page_sets.SimpleMobileSitesPageSet
@classmethod
@@ -233,10 +242,9 @@ class SmoothnessSimpleMobilePages(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessFlingSimpleMobilePages(perf_benchmark.PerfBenchmark):
+class SmoothnessFlingSimpleMobilePages(_Smoothness):
"""Measures rendering statistics for flinging a simple mobile sites page set.
"""
- test = smoothness.Smoothness
page_set = page_sets.SimpleMobileSitesFlingPageSet
def SetExtraBrowserOptions(self, options):
@@ -251,11 +259,10 @@ class SmoothnessFlingSimpleMobilePages(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android', 'chromeos', 'mac')
-class SmoothnessToughPinchZoomCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughPinchZoomCases(_Smoothness):
"""Measures rendering statistics for pinch-zooming into the tough pinch zoom
cases.
"""
- test = smoothness.Smoothness
page_set = page_sets.ToughPinchZoomCasesPageSet
@classmethod
@@ -264,9 +271,8 @@ class SmoothnessToughPinchZoomCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android', 'chromeos')
-class SmoothnessToughScrollingWhileZoomedInCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughScrollingWhileZoomedInCases(_Smoothness):
"""Measures rendering statistics for pinch-zooming then diagonal scrolling"""
- test = smoothness.Smoothness
page_set = page_sets.ToughScrollingWhileZoomedInCasesPageSet
@classmethod
@@ -275,10 +281,9 @@ class SmoothnessToughScrollingWhileZoomedInCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessPolymer(perf_benchmark.PerfBenchmark):
+class SmoothnessPolymer(_Smoothness):
"""Measures rendering statistics for Polymer cases.
"""
- test = smoothness.Smoothness
page_set = page_sets.PolymerPageSet
@classmethod
@@ -287,11 +292,10 @@ class SmoothnessPolymer(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessGpuRasterizationPolymer(perf_benchmark.PerfBenchmark):
+class SmoothnessGpuRasterizationPolymer(_Smoothness):
"""Measures rendering statistics for the Polymer cases with GPU rasterization.
"""
tag = 'gpu_rasterization'
- test = smoothness.Smoothness
page_set = page_sets.PolymerPageSet
def SetExtraBrowserOptions(self, options):
@@ -302,8 +306,7 @@ class SmoothnessGpuRasterizationPolymer(perf_benchmark.PerfBenchmark):
return 'smoothness.gpu_rasterization.polymer'
-class SmoothnessToughScrollingCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessToughScrollingCases(_Smoothness):
page_set = page_sets.ToughScrollingCasesPageSet
@classmethod
@@ -311,8 +314,7 @@ class SmoothnessToughScrollingCases(perf_benchmark.PerfBenchmark):
return 'smoothness.tough_scrolling_cases'
@benchmark.Disabled('android') # http://crbug.com/531593
-class SmoothnessToughImageDecodeCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessToughImageDecodeCases(_Smoothness):
page_set = page_sets.ToughImageDecodeCasesPageSet
@classmethod
@@ -320,10 +322,9 @@ class SmoothnessToughImageDecodeCases(perf_benchmark.PerfBenchmark):
return 'smoothness.tough_image_decode_cases'
@benchmark.Disabled('android') # http://crbug.com/513699
-class SmoothnessImageDecodingCases(perf_benchmark.PerfBenchmark):
+class SmoothnessImageDecodingCases(_Smoothness):
"""Measures decoding statistics for jpeg images.
"""
- test = smoothness.Smoothness
page_set = page_sets.ImageDecodingCasesPageSet
def SetExtraBrowserOptions(self, options):
@@ -336,11 +337,10 @@ class SmoothnessImageDecodingCases(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('android') # http://crbug.com/513699
-class SmoothnessGpuImageDecodingCases(perf_benchmark.PerfBenchmark):
+class SmoothnessGpuImageDecodingCases(_Smoothness):
"""Measures decoding statistics for jpeg images with GPU rasterization.
"""
tag = 'gpu_rasterization_and_decoding'
- test = smoothness.Smoothness
page_set = page_sets.ImageDecodingCasesPageSet
def SetExtraBrowserOptions(self, options):
@@ -354,10 +354,9 @@ class SmoothnessGpuImageDecodingCases(perf_benchmark.PerfBenchmark):
@benchmark.Enabled('android')
-class SmoothnessPathologicalMobileSites(perf_benchmark.PerfBenchmark):
+class SmoothnessPathologicalMobileSites(_Smoothness):
"""Measures task execution statistics while scrolling pathological sites.
"""
- test = smoothness.Smoothness
page_set = page_sets.PathologicalMobileSitesPageSet
@classmethod
@@ -365,8 +364,7 @@ class SmoothnessPathologicalMobileSites(perf_benchmark.PerfBenchmark):
return 'smoothness.pathological_mobile_sites'
-class SmoothnessToughAnimatedImageCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessToughAnimatedImageCases(_Smoothness):
page_set = page_sets.ToughAnimatedImageCasesPageSet
@classmethod
@@ -375,8 +373,7 @@ class SmoothnessToughAnimatedImageCases(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('reference') # http://crbug.com/499489
-class SmoothnessToughTextureUploadCases(perf_benchmark.PerfBenchmark):
- test = smoothness.Smoothness
+class SmoothnessToughTextureUploadCases(_Smoothness):
page_set = page_sets.ToughTextureUploadCasesPageSet
@classmethod
@@ -385,9 +382,8 @@ class SmoothnessToughTextureUploadCases(perf_benchmark.PerfBenchmark):
@benchmark.Disabled('reference') # http://crbug.com/496684
-class SmoothnessToughAdCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughAdCases(_Smoothness):
"""Measures rendering statistics while displaying advertisements."""
- test = smoothness.Smoothness
page_set = page_sets.ToughAdCasesPageSet
@classmethod
@@ -398,9 +394,8 @@ class SmoothnessToughAdCases(perf_benchmark.PerfBenchmark):
# http://crbug.com/496684 (reference)
# http://crbug.com/522619 (mac/win)
@benchmark.Disabled('reference', 'win', 'mac')
-class SmoothnessScrollingToughAdCases(perf_benchmark.PerfBenchmark):
+class SmoothnessScrollingToughAdCases(_Smoothness):
"""Measures rendering statistics while scrolling advertisements."""
- test = smoothness.Smoothness
page_set = page_sets.ScrollingToughAdCasesPageSet
@classmethod
@@ -411,10 +406,8 @@ class SmoothnessScrollingToughAdCases(perf_benchmark.PerfBenchmark):
# http://crbug.com/496684 (reference)
# http://crbug.com/522619 (mac/win)
@benchmark.Disabled('reference', 'win', 'mac')
-class SmoothnessBidirectionallyScrollingToughAdCases(
- perf_benchmark.PerfBenchmark):
+class SmoothnessBidirectionallyScrollingToughAdCases(_Smoothness):
"""Measures rendering statistics while scrolling advertisements."""
- test = smoothness.Smoothness
page_set = page_sets.BidirectionallyScrollingToughAdCasesPageSet
def SetExtraBrowserOptions(self, options):
@@ -427,9 +420,8 @@ class SmoothnessBidirectionallyScrollingToughAdCases(
@benchmark.Disabled('reference') # http://crbug.com/496684
-class SmoothnessToughWebGLAdCases(perf_benchmark.PerfBenchmark):
+class SmoothnessToughWebGLAdCases(_Smoothness):
"""Measures rendering statistics while scrolling advertisements."""
- test = smoothness.Smoothness
page_set = page_sets.ToughWebglAdCasesPageSet
@classmethod