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

Side by Side Diff: content/test/gpu/gpu_tests/pixel.py

Issue 281193002: Fail pixel tests when reference images are missing from cloud storage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 from datetime import datetime 4 from datetime import datetime
5 import glob 5 import glob
6 import optparse 6 import optparse
7 import os 7 import os
8 import re 8 import re
9 9
10 import cloud_storage_test_base 10 import cloud_storage_test_base
11 import pixel_expectations 11 import pixel_expectations
12 12
13 from telemetry import test 13 from telemetry import test
14 from telemetry.core import bitmap 14 from telemetry.core import bitmap
15 from telemetry.page import cloud_storage
15 from telemetry.page import page_test 16 from telemetry.page import page_test
16 17
17 test_data_dir = os.path.abspath(os.path.join( 18 test_data_dir = os.path.abspath(os.path.join(
18 os.path.dirname(__file__), '..', '..', 'data', 'gpu')) 19 os.path.dirname(__file__), '..', '..', 'data', 'gpu'))
19 20
20 default_reference_image_dir = os.path.join(test_data_dir, 'gpu_reference') 21 default_reference_image_dir = os.path.join(test_data_dir, 'gpu_reference')
21 22
22 test_harness_script = r""" 23 test_harness_script = r"""
23 var domAutomationController = {}; 24 var domAutomationController = {};
24 25
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 screenshot): 75 screenshot):
75 # This is the new reference image; there's nothing to compare against. 76 # This is the new reference image; there's nothing to compare against.
76 ref_png = screenshot 77 ref_png = screenshot
77 else: 78 else:
78 # There was a preexisting reference image, so we might as well 79 # There was a preexisting reference image, so we might as well
79 # compare against it. 80 # compare against it.
80 ref_png = self._DownloadFromCloudStorage(image_name, page, tab) 81 ref_png = self._DownloadFromCloudStorage(image_name, page, tab)
81 elif self.options.download_refimg_from_cloud_storage: 82 elif self.options.download_refimg_from_cloud_storage:
82 # This bot doesn't have the ability to properly generate a 83 # This bot doesn't have the ability to properly generate a
83 # reference image, so download it from cloud storage. 84 # reference image, so download it from cloud storage.
84 ref_png = self._DownloadFromCloudStorage(image_name, page, tab) 85 try:
86 ref_png = self._DownloadFromCloudStorage(image_name, page, tab)
87 except cloud_storage.NotFoundError as e:
88 # There is no reference image yet in cloud storage. This
89 # happens when the revision of the test is incremented or when
90 # a new test is added, because the trybots are not allowed to
91 # produce reference images, only the bots on the main
92 # waterfalls. Report this as a failure so the developer has to
93 # take action by explicitly suppressing the failure and
94 # removing the suppression once the reference images have been
95 # generated. Otherwise silent failures could happen for long
96 # periods of time.
97 raise page_test.Failure('Could not find image %s in cloud storage' %
98 image_name)
85 else: 99 else:
86 # Legacy path using on-disk results. 100 # Legacy path using on-disk results.
87 ref_png = self._GetReferenceImage(self.options.reference_dir, 101 ref_png = self._GetReferenceImage(self.options.reference_dir,
88 image_name, page.revision, screenshot) 102 image_name, page.revision, screenshot)
89 103
90 # Test new snapshot against existing reference image 104 # Test new snapshot against existing reference image
91 if not ref_png.IsEqual(screenshot, tolerance=2): 105 if not ref_png.IsEqual(screenshot, tolerance=2):
92 if self.options.test_machine_name: 106 if self.options.test_machine_name:
93 self._UploadErrorImagesToCloudStorage(image_name, screenshot, ref_png) 107 self._UploadErrorImagesToCloudStorage(image_name, screenshot, ref_png)
94 else: 108 else:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 default=default_reference_image_dir) 157 default=default_reference_image_dir)
144 158
145 def CreatePageSet(self, options): 159 def CreatePageSet(self, options):
146 page_set = super(Pixel, self).CreatePageSet(options) 160 page_set = super(Pixel, self).CreatePageSet(options)
147 for page in page_set.pages: 161 for page in page_set.pages:
148 page.script_to_evaluate_on_commit = test_harness_script 162 page.script_to_evaluate_on_commit = test_harness_script
149 return page_set 163 return page_set
150 164
151 def CreateExpectations(self, page_set): 165 def CreateExpectations(self, page_set):
152 return pixel_expectations.PixelExpectations() 166 return pixel_expectations.PixelExpectations()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698