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

Side by Side Diff: content/test/gpu/page_sets/gpu_process_tests.py

Issue 1463823002: Add DriverBugWorkaroundsInGpuProcessPage to gpu_process_test.py (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove "set gpu active in GPU process" from previous patch set. Created 4 years, 8 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
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 import sys 4 import sys
5 from telemetry.story import story_set as story_set_module 5 from telemetry.story import story_set as story_set_module
6 from telemetry.page import page_test 6 from telemetry.page import page_test
7 7
8 from gpu_tests import gpu_test_base 8 from gpu_tests import gpu_test_base
9 9
10 class GpuProcessSharedPageState(gpu_test_base.GpuSharedPageState): 10 class GpuProcessSharedPageState(gpu_test_base.GpuSharedPageState):
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 page_set=story_set, 162 page_set=story_set,
163 shared_page_state_class=SkipGpuProcessSharedPageState, 163 shared_page_state_class=SkipGpuProcessSharedPageState,
164 expectations=expectations) 164 expectations=expectations)
165 165
166 def Validate(self, tab, results): 166 def Validate(self, tab, results):
167 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' 167 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()'
168 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) 168 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js)
169 if has_gpu_process: 169 if has_gpu_process:
170 raise page_test.Failure('GPU process detected') 170 raise page_test.Failure('GPU process detected')
171 171
172
173 class DriverBugWorkaroundsSharedPageState(GpuProcessSharedPageState):
174 def __init__(self, test, finder_options, story_set):
175 super(DriverBugWorkaroundsSharedPageState, self).__init__(
176 test, finder_options, story_set)
177 options = finder_options.browser_options
178 options.AppendExtraBrowserArgs('--use_gpu_driver_workaround_for_testing')
179
180
181 class DriverBugWorkaroundsInGpuProcessPage(gpu_test_base.PageBase):
182 def __init__(self, story_set, expectations):
183 super(DriverBugWorkaroundsInGpuProcessPage, self).__init__(
184 url='chrome:gpu',
185 name='GpuProcess.driver_bug_workarounds_in_gpu_process',
186 page_set=story_set,
187 shared_page_state_class=DriverBugWorkaroundsSharedPageState,
188 expectations=expectations)
189
190 def Validate(self, tab, results):
191 browser_list = tab.EvaluateJavaScript('GetDriverBugWorkarounds()')
192 gpu_list = tab.EvaluateJavaScript( \
193 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()')
194
195 diff = set(browser_list).symmetric_difference(set(gpu_list))
196 if len(diff) > 0:
197 print 'Test failed. Printing page contents:'
198 print tab.EvaluateJavaScript('document.body.innerHTML')
199 raise page_test.Failure('Browser and GPU process list of driver bug' \
200 'workarounds are not equal: %s != %s, diff: %s' % \
201 (browser_list, gpu_list, list(diff)))
202
203 workaround = 'use_gpu_driver_workaround_for_testing'
204
205 if not workaround in gpu_list:
206 print 'Test failed. Printing page contents:'
207 print tab.EvaluateJavaScript('document.body.innerHTML')
208 raise page_test.Failure('%s not present in GPU process workarounds' \
209 % workaround)
210
172 class GpuProcessTestsStorySet(story_set_module.StorySet): 211 class GpuProcessTestsStorySet(story_set_module.StorySet):
173 212
174 """ Tests that accelerated content triggers the creation of a GPU process """ 213 """ Tests that accelerated content triggers the creation of a GPU process """
175 214
176 def __init__(self, expectations): 215 def __init__(self, expectations):
177 super(GpuProcessTestsStorySet, self).__init__( 216 super(GpuProcessTestsStorySet, self).__init__(
178 serving_dirs=set(['../../../../content/test/data'])) 217 serving_dirs=set(['../../../../content/test/data']))
179 218
180 urls_and_names_list = [ 219 urls_and_names_list = [
181 ('file://../../data/gpu/functional_canvas_demo.html', 220 ('file://../../data/gpu/functional_canvas_demo.html',
182 'GpuProcess.canvas2d'), 221 'GpuProcess.canvas2d'),
183 ('file://../../data/gpu/functional_3d_css.html', 222 ('file://../../data/gpu/functional_3d_css.html',
184 'GpuProcess.css3d'), 223 'GpuProcess.css3d'),
185 ('file://../../data/gpu/functional_webgl.html', 224 ('file://../../data/gpu/functional_webgl.html',
186 'GpuProcess.webgl') 225 'GpuProcess.webgl')
187 ] 226 ]
188 227
189 for url, name in urls_and_names_list: 228 for url, name in urls_and_names_list:
190 self.AddStory(GpuProcessTestsPage(url, name, self, expectations)) 229 self.AddStory(GpuProcessTestsPage(url, name, self, expectations))
191 230
192 self.AddStory(FunctionalVideoPage(self, expectations)) 231 self.AddStory(FunctionalVideoPage(self, expectations))
193 self.AddStory(GpuInfoCompletePage(self, expectations)) 232 self.AddStory(GpuInfoCompletePage(self, expectations))
194 self.AddStory(NoGpuProcessPage(self, expectations)) 233 self.AddStory(NoGpuProcessPage(self, expectations))
195 self.AddStory(SoftwareGpuProcessPage(self, expectations)) 234 self.AddStory(SoftwareGpuProcessPage(self, expectations))
196 self.AddStory(SkipGpuProcessPage(self, expectations)) 235 self.AddStory(SkipGpuProcessPage(self, expectations))
236 self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations))
197 237
198 @property 238 @property
199 def allow_mixed_story_states(self): 239 def allow_mixed_story_states(self):
200 # Return True here in order to be able to run pages with different browser 240 # Return True here in order to be able to run pages with different browser
201 # command line arguments. 241 # command line arguments.
202 return True 242 return True
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698