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

Unified Diff: content/test/gpu/gpu_tests/pixel_test_pages.py

Issue 2363343002: Ported pixel_test to new gpu_integration_test harness. (Closed)
Patch Set: Update revision for OffscreenCanvasWebGLGreenBox. Created 4 years, 3 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 | « content/test/gpu/gpu_tests/pixel_integration_test.py ('k') | testing/buildbot/chromium.gpu.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/gpu/gpu_tests/pixel_test_pages.py
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py
new file mode 100644
index 0000000000000000000000000000000000000000..520629d2fbca70cfd66eac3f54d18d01d2feb1b6
--- /dev/null
+++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -0,0 +1,244 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+class PixelTestPage(object):
+ """A wrapper class mimicking the functionality of the PixelTestsStorySet
+ from the old-style GPU tests.
+ """
+ def __init__(self, url, name, test_rect, revision,
+ expected_colors=None, tolerance=2, browser_args=None):
+ super(PixelTestPage, self).__init__()
+ self.url = url
+ self.name = name
+ self.test_rect = test_rect
+ self.revision = revision
+ # The expected colors can be specified as a list of dictionaries,
+ # in which case these specific pixels will be sampled instead of
+ # comparing the entire image snapshot. The format is only defined
+ # by contract with _CompareScreenshotSamples in
+ # cloud_storage_integration_test_base.py.
+ self.expected_colors = expected_colors
+ # The tolerance when comparing against the reference image.
+ self.tolerance = tolerance
+ self.browser_args = browser_args
+
+ def CopyWithNewBrowserArgsAndSuffix(self, browser_args, suffix):
+ return PixelTestPage(
+ self.url, self.name + suffix, self.test_rect, self.revision,
+ self.expected_colors, self.tolerance, browser_args)
+
+ def CopyWithNewBrowserArgsAndPrefix(self, browser_args, prefix):
+ # Assuming the test name is 'Pixel'.
+ split = self.name.split('_', 1)
+ return PixelTestPage(
+ self.url, split[0] + '_' + prefix + split[1], self.test_rect,
+ self.revision, self.expected_colors, self.tolerance, browser_args)
+
+
+def CopyPagesWithNewBrowserArgsAndSuffix(pages, browser_args, suffix):
+ return [
+ p.CopyWithNewBrowserArgsAndSuffix(browser_args, suffix) for p in pages]
+
+
+def CopyPagesWithNewBrowserArgsAndPrefix(pages, browser_args, prefix):
+ return [
+ p.CopyWithNewBrowserArgsAndPrefix(browser_args, prefix) for p in pages]
+
+
+# Pages that should be run both with and without --enable-unsafe-es3-apis.
+# TODO(kbr): eliminate the "ES3" versions of these tests once WebGL 2.0
+# is enabled by default. crbug.com/295792
+def ES2AndES3Pages(base_name):
+ return [
+ PixelTestPage(
+ 'pixel_canvas2d.html',
+ base_name + '_Canvas2DRedBox',
+ test_rect=[0, 0, 300, 300],
+ revision=7),
+
+ PixelTestPage(
+ 'pixel_css3d.html',
+ base_name + '_CSS3DBlueBox',
+ test_rect=[0, 0, 300, 300],
+ revision=15),
+
+ PixelTestPage(
+ 'pixel_webgl_aa_alpha.html',
+ base_name + '_WebGLGreenTriangle_AA_Alpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1),
+
+ PixelTestPage(
+ 'pixel_webgl_noaa_alpha.html',
+ base_name + '_WebGLGreenTriangle_NoAA_Alpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1),
+
+ PixelTestPage(
+ 'pixel_webgl_aa_noalpha.html',
+ base_name + '_WebGLGreenTriangle_AA_NoAlpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1),
+
+ PixelTestPage(
+ 'pixel_webgl_noaa_noalpha.html',
+ base_name + '_WebGLGreenTriangle_NoAA_NoAlpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1),
+
+ PixelTestPage(
+ 'pixel_scissor.html',
+ base_name + '_ScissorTestWithPreserveDrawingBuffer',
+ test_rect=[0, 0, 300, 300],
+ revision=0, # This is not used.
+ expected_colors=[
+ {
+ 'comment': 'red top',
+ 'location': [1, 1],
+ 'size': [198, 188],
+ 'color': [255, 0, 0],
+ 'tolerance': 3
+ },
+ {
+ 'comment': 'green bottom left',
+ 'location': [1, 191],
+ 'size': [8, 8],
+ 'color': [0, 255, 0],
+ 'tolerance': 3
+ },
+ {
+ 'comment': 'red bottom right',
+ 'location': [11, 191],
+ 'size': [188, 8],
+ 'color': [255, 0, 0],
+ 'tolerance': 3
+ }
+ ]),
+
+ PixelTestPage(
+ 'pixel_canvas2d_webgl.html',
+ base_name + '_2DCanvasWebGL',
+ test_rect=[0, 0, 300, 300],
+ revision=2),
+
+ PixelTestPage(
+ 'pixel_background.html',
+ base_name + '_SolidColorBackground',
+ test_rect=[500, 500, 100, 100],
+ revision=1),
+ ]
+
+
+# Pages that should be run with experimental canvas features.
+def ExperimentalCanvasFeaturesPages(base_name):
+ browser_args = ['--enable-experimental-canvas-features']
+
+ return [
+ PixelTestPage(
+ 'pixel_offscreenCanvas_transferToImageBitmap_main.html',
+ base_name + '_OffscreenCanvasTransferToImageBitmap',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=browser_args),
+
+ PixelTestPage(
+ 'pixel_offscreenCanvas_transferToImageBitmap_worker.html',
+ base_name + '_OffscreenCanvasTransferToImageBitmapWorker',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=browser_args),
+
+ PixelTestPage(
+ 'pixel_offscreenCanvas_webgl_commit_main.html',
+ base_name + '_OffscreenCanvasWebGLGreenBox',
+ test_rect=[0, 0, 300, 300],
+ revision=2,
+ browser_args=browser_args),
+
+ PixelTestPage(
+ 'pixel_offscreenCanvas_webgl_commit_worker.html',
+ base_name + '_OffscreenCanvasWebGLRedBoxWorker',
+ test_rect=[0, 0, 300, 300],
+ revision=3,
+ browser_args=browser_args),
+
+ PixelTestPage(
+ 'pixel_acceleratedOffscreen2d_commit_main.html',
+ base_name + '_OffscreenCanvasAccelerated2D',
+ test_rect=[0, 0, 350, 350],
+ revision=1,
+ browser_args=browser_args),
+
+ PixelTestPage(
+ 'pixel_acceleratedOffscreen2d_commit_worker.html',
+ base_name + '_OffscreenCanvasAccelerated2DWorker',
+ test_rect=[0, 0, 350, 350],
+ revision=1,
+ browser_args=browser_args),
+ ]
+
+# Pages that should be run with various macOS specific command line
+# arguments.
+def MacSpecificPages(base_name):
+ iosurface_2d_canvas_args = [
+ '--enable-accelerated-2d-canvas',
+ '--disable-display-list-2d-canvas']
+
+ non_chromium_image_args = ['--disable-webgl-image-chromium']
+
+ return [
+ # On macOS, test the IOSurface 2D Canvas compositing path.
+ PixelTestPage(
+ 'pixel_canvas2d_accelerated.html',
+ base_name + '_IOSurface2DCanvas',
+ test_rect=[0, 0, 400, 400],
+ revision=1,
+ browser_args=iosurface_2d_canvas_args),
+ PixelTestPage(
+ 'pixel_canvas2d_webgl.html',
+ base_name + '_IOSurface2DCanvasWebGL',
+ test_rect=[0, 0, 300, 300],
+ revision=2,
+ browser_args=iosurface_2d_canvas_args),
+
+ # On macOS, test WebGL non-Chromium Image compositing path.
+ PixelTestPage(
+ 'pixel_webgl_aa_alpha.html',
+ base_name + '_WebGLGreenTriangle_NonChromiumImage_AA_Alpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=non_chromium_image_args),
+ PixelTestPage(
+ 'pixel_webgl_noaa_alpha.html',
+ base_name + '_WebGLGreenTriangle_NonChromiumImage_NoAA_Alpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=non_chromium_image_args),
+ PixelTestPage(
+ 'pixel_webgl_aa_noalpha.html',
+ base_name + '_WebGLGreenTriangle_NonChromiumImage_AA_NoAlpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=non_chromium_image_args),
+ PixelTestPage(
+ 'pixel_webgl_noaa_noalpha.html',
+ base_name + '_WebGLGreenTriangle_NonChromiumImage_NoAA_NoAlpha',
+ test_rect=[0, 0, 300, 300],
+ revision=1,
+ browser_args=non_chromium_image_args),
+
+ # On macOS, test CSS filter effects with and without the CA compositor.
+ PixelTestPage(
+ 'filter_effects.html',
+ base_name + '_CSSFilterEffects',
+ test_rect=[0, 0, 300, 300],
+ revision=2),
+ PixelTestPage(
+ 'filter_effects.html',
+ base_name + '_CSSFilterEffects_NoOverlays',
+ test_rect=[0, 0, 300, 300],
+ revision=2,
+ tolerance=10,
+ browser_args=['--disable-mac-overlays']),
+ ]
« no previous file with comments | « content/test/gpu/gpu_tests/pixel_integration_test.py ('k') | testing/buildbot/chromium.gpu.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698