| Index: content/test/gpu/gpu_tests/screenshot_sync.py
|
| diff --git a/content/test/gpu/gpu_tests/screenshot_sync.py b/content/test/gpu/gpu_tests/screenshot_sync.py
|
| deleted file mode 100644
|
| index 4423107e459a21b4d375872835e5e0b2d2eb85f8..0000000000000000000000000000000000000000
|
| --- a/content/test/gpu/gpu_tests/screenshot_sync.py
|
| +++ /dev/null
|
| @@ -1,137 +0,0 @@
|
| -# Copyright 2014 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.
|
| -import os
|
| -import random
|
| -
|
| -from gpu_tests import gpu_test_base
|
| -from gpu_tests import path_util
|
| -from gpu_tests import screenshot_sync_expectations
|
| -
|
| -from telemetry.page import legacy_page_test
|
| -from telemetry.story import story_set as story_set_module
|
| -from telemetry.util import image_util
|
| -from telemetry.util import rgba_color
|
| -
|
| -data_path = os.path.join(
|
| - path_util.GetChromiumSrcDir(), 'content', 'test', 'data', 'gpu')
|
| -
|
| -
|
| -class SoftwareRasterSharedPageState(gpu_test_base.GpuSharedPageState):
|
| - def __init__(self, test, finder_options, story_set):
|
| - super(SoftwareRasterSharedPageState, self).__init__(
|
| - test, finder_options, story_set)
|
| - finder_options.browser_options.AppendExtraBrowserArgs(
|
| - ['--disable-gpu-rasterization'])
|
| -
|
| -
|
| -class GPURasterSharedPageState(gpu_test_base.GpuSharedPageState):
|
| - def __init__(self, test, finder_options, story_set):
|
| - super(GPURasterSharedPageState, self).__init__(
|
| - test, finder_options, story_set)
|
| - finder_options.browser_options.AppendExtraBrowserArgs(
|
| - ['--force-gpu-rasterization'])
|
| -
|
| -
|
| -class ScreenshotSyncValidator(gpu_test_base.ValidatorBase):
|
| - def CustomizeBrowserOptions(self, options):
|
| - # --test-type=gpu is used only to suppress the "Google API Keys are missing"
|
| - # infobar, which causes flakiness in tests.
|
| - options.AppendExtraBrowserArgs(['--test-type=gpu'])
|
| -
|
| - def ValidateAndMeasurePage(self, page, tab, results):
|
| - if not tab.screenshot_supported:
|
| - raise legacy_page_test.Failure(
|
| - 'Browser does not support screenshot capture')
|
| -
|
| - def CheckColorMatchAtLocation(expectedRGB, screenshot, x, y):
|
| - pixel_value = image_util.GetPixelColor(screenshot, x, y)
|
| - if not expectedRGB.IsEqual(pixel_value):
|
| - error_message = ('Color mismatch at (%d, %d): expected (%d, %d, %d), ' +
|
| - 'got (%d, %d, %d)') % (
|
| - x, y, expectedRGB.r, expectedRGB.g, expectedRGB.b,
|
| - pixel_value.r, pixel_value.g, pixel_value.b)
|
| - raise legacy_page_test.Failure(error_message)
|
| -
|
| - def CheckScreenshot():
|
| - canvasRGB = rgba_color.RgbaColor(random.randint(0, 255),
|
| - random.randint(0, 255),
|
| - random.randint(0, 255),
|
| - 255)
|
| - tab.EvaluateJavaScript("window.draw(%d, %d, %d);" % (
|
| - canvasRGB.r, canvasRGB.g, canvasRGB.b))
|
| - screenshot = tab.Screenshot(5)
|
| - start_x = 10
|
| - start_y = 0
|
| - outer_size = 256
|
| - skip = 10
|
| - for y in range(start_y, outer_size, skip):
|
| - for x in range(start_x, outer_size, skip):
|
| - CheckColorMatchAtLocation(canvasRGB, screenshot, x, y)
|
| -
|
| - repetitions = 20
|
| - for _ in range(0, repetitions):
|
| - CheckScreenshot()
|
| -
|
| -
|
| -class ScreenshotSyncPage(gpu_test_base.PageBase):
|
| - def __init__(self, story_set, base_dir,
|
| - shared_page_state_class,
|
| - url, name, expectations):
|
| - super(ScreenshotSyncPage, self).__init__(
|
| - url=url,
|
| - page_set=story_set,
|
| - base_dir=base_dir,
|
| - name=name,
|
| - shared_page_state_class=shared_page_state_class,
|
| - expectations=expectations)
|
| -
|
| -
|
| -class ScreenshotSyncStorySet(story_set_module.StorySet):
|
| - """Test cases for screenshots being in sync with content updates."""
|
| - def __init__(self, base_dir=None, serving_dirs=None):
|
| - super(ScreenshotSyncStorySet, self).__init__(
|
| - base_dir=base_dir, serving_dirs=serving_dirs)
|
| -
|
| - @property
|
| - def allow_mixed_story_states(self):
|
| - # Return True here in order to be able to run the same tests with
|
| - # both software and GPU rasterization.
|
| - return True
|
| -
|
| -
|
| -class ScreenshotSyncProcess(gpu_test_base.TestBase):
|
| - """Tests that screenhots are properly synchronized with the frame one which
|
| - they were requested"""
|
| - test = ScreenshotSyncValidator
|
| -
|
| - @classmethod
|
| - def Name(cls):
|
| - return 'screenshot_sync'
|
| -
|
| - def _CreateExpectations(self):
|
| - return screenshot_sync_expectations.ScreenshotSyncExpectations()
|
| -
|
| - def CreateStorySet(self, options):
|
| - ps = ScreenshotSyncStorySet(base_dir=data_path, serving_dirs=[''])
|
| - ps.AddStory(ScreenshotSyncPage(ps, ps.base_dir,
|
| - SoftwareRasterSharedPageState,
|
| - 'file://screenshot_sync_canvas.html',
|
| - 'ScreenshotSync.SWRasterWithCanvas',
|
| - self.GetExpectations()))
|
| - ps.AddStory(ScreenshotSyncPage(ps, ps.base_dir,
|
| - SoftwareRasterSharedPageState,
|
| - 'file://screenshot_sync_divs.html',
|
| - 'ScreenshotSync.SWRasterWithDivs',
|
| - self.GetExpectations()))
|
| - ps.AddStory(ScreenshotSyncPage(ps, ps.base_dir,
|
| - GPURasterSharedPageState,
|
| - 'file://screenshot_sync_canvas.html',
|
| - 'ScreenshotSync.GPURasterWithCanvas',
|
| - self.GetExpectations()))
|
| - ps.AddStory(ScreenshotSyncPage(ps, ps.base_dir,
|
| - GPURasterSharedPageState,
|
| - 'file://screenshot_sync_divs.html',
|
| - 'ScreenshotSync.GPURasterWithDivs',
|
| - self.GetExpectations()))
|
| - return ps
|
|
|