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

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

Issue 2539973004: Update reference to page_test module to use legacy_page_test module (Closed)
Patch Set: update Created 4 years 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 legacy_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):
11 11
12 gpu_switches = ['--gpu-no-complete-info-collection', 12 gpu_switches = ['--gpu-no-complete-info-collection',
13 '--gpu-testing-os-version', 13 '--gpu-testing-os-version',
14 '--gpu-testing-vendor-id', 14 '--gpu-testing-vendor-id',
15 '--gpu-testing-device-id', 15 '--gpu-testing-device-id',
16 '--gpu-testing-secondary-vendor-ids', 16 '--gpu-testing-secondary-vendor-ids',
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 description = info['description'] 56 description = info['description']
57 value = info['value'] 57 value = info['value']
58 if description.startswith('GPU%d' % index) and value.startswith('VENDOR'): 58 if description.startswith('GPU%d' % index) and value.startswith('VENDOR'):
59 if value.endswith('*ACTIVE*'): 59 if value.endswith('*ACTIVE*'):
60 active_gpu.append(value) 60 active_gpu.append(value)
61 else: 61 else:
62 inactive_gpus.append(value) 62 inactive_gpus.append(value)
63 index += 1 63 index += 1
64 64
65 if active_gpu != self.active_gpu: 65 if active_gpu != self.active_gpu:
66 raise page_test.Failure('Active GPU field is wrong %s' % active_gpu) 66 raise legacy_page_test.Failure(
67 'Active GPU field is wrong %s' % active_gpu)
67 68
68 if inactive_gpus != self.inactive_gpus: 69 if inactive_gpus != self.inactive_gpus:
69 raise page_test.Failure('Inactive GPU field is wrong %s' % inactive_gpus) 70 raise legacy_page_test.Failure(
71 'Inactive GPU field is wrong %s' % inactive_gpus)
70 72
71 73
72 class DriverBugWorkaroundsTestsPage(gpu_test_base.PageBase): 74 class DriverBugWorkaroundsTestsPage(gpu_test_base.PageBase):
73 def __init__(self, page_set=None, name='', 75 def __init__(self, page_set=None, name='',
74 shared_page_state_class=None, 76 shared_page_state_class=None,
75 expectations=None, 77 expectations=None,
76 expected_workaround=None, 78 expected_workaround=None,
77 unexpected_workaround=None): 79 unexpected_workaround=None):
78 super(DriverBugWorkaroundsTestsPage, self).__init__( 80 super(DriverBugWorkaroundsTestsPage, self).__init__(
79 url='chrome:gpu', 81 url='chrome:gpu',
(...skipping 18 matching lines...) Expand all
98 if is_expected and not is_present: 100 if is_expected and not is_present:
99 failure = True 101 failure = True
100 error_message = "is missing" 102 error_message = "is missing"
101 elif not is_expected and is_present: 103 elif not is_expected and is_present:
102 failure = True 104 failure = True
103 error_message = "is not expected" 105 error_message = "is not expected"
104 106
105 if failure: 107 if failure:
106 print 'Test failed. Printing page contents:' 108 print 'Test failed. Printing page contents:'
107 print tab.EvaluateJavaScript('document.body.innerHTML') 109 print tab.EvaluateJavaScript('document.body.innerHTML')
108 raise page_test.Failure('%s %s in Browser process workarounds: %s' \ 110 raise legacy_page_test.Failure('%s %s in Browser process workarounds: %s'
109 % (workaround_name, error_message, gpu_driver_bug_workarounds)) 111 % (workaround_name, error_message, gpu_driver_bug_workarounds))
110 112
111 def Validate(self, tab, results): 113 def Validate(self, tab, results):
112 if not self.expected_workaround and not self.unexpected_workaround: 114 if not self.expected_workaround and not self.unexpected_workaround:
113 return 115 return
114 116
115 if self.expected_workaround: 117 if self.expected_workaround:
116 self._Validate(tab, "browser_process", True, self.expected_workaround) 118 self._Validate(tab, "browser_process", True, self.expected_workaround)
117 self._Validate(tab, "gpu_process", True, self.expected_workaround) 119 self._Validate(tab, "gpu_process", True, self.expected_workaround)
118 120
119 if self.unexpected_workaround: 121 if self.unexpected_workaround:
120 self._Validate(tab, "browser_process", False, self.unexpected_workaround) 122 self._Validate(tab, "browser_process", False, self.unexpected_workaround)
121 self._Validate(tab, "gpu_process", False, self.unexpected_workaround) 123 self._Validate(tab, "gpu_process", False, self.unexpected_workaround)
122 124
123 125
124 class EqualBugWorkaroundsBasePage(gpu_test_base.PageBase): 126 class EqualBugWorkaroundsBasePage(gpu_test_base.PageBase):
125 def __init__(self, name=None, page_set=None, shared_page_state_class=None, 127 def __init__(self, name=None, page_set=None, shared_page_state_class=None,
126 expectations=None): 128 expectations=None):
127 super(EqualBugWorkaroundsBasePage, self).__init__( 129 super(EqualBugWorkaroundsBasePage, self).__init__(
128 url='chrome:gpu', 130 url='chrome:gpu',
129 name=name, 131 name=name,
130 page_set=page_set, 132 page_set=page_set,
131 shared_page_state_class=shared_page_state_class, 133 shared_page_state_class=shared_page_state_class,
132 expectations=expectations) 134 expectations=expectations)
133 135
134 def Validate(self, tab, results): 136 def Validate(self, tab, results):
135 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' 137 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()'
136 if not tab.EvaluateJavaScript(has_gpu_process_js): 138 if not tab.EvaluateJavaScript(has_gpu_process_js):
137 raise page_test.Failure('No GPU process detected') 139 raise legacy_page_test.Failure('No GPU process detected')
138 140
139 has_gpu_channel_js = 'chrome.gpuBenchmarking.hasGpuChannel()' 141 has_gpu_channel_js = 'chrome.gpuBenchmarking.hasGpuChannel()'
140 if not tab.EvaluateJavaScript(has_gpu_channel_js): 142 if not tab.EvaluateJavaScript(has_gpu_channel_js):
141 raise page_test.Failure('No GPU channel detected') 143 raise legacy_page_test.Failure('No GPU channel detected')
142 144
143 browser_list = tab.EvaluateJavaScript('GetDriverBugWorkarounds()') 145 browser_list = tab.EvaluateJavaScript('GetDriverBugWorkarounds()')
144 gpu_list = tab.EvaluateJavaScript( \ 146 gpu_list = tab.EvaluateJavaScript( \
145 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()') 147 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()')
146 148
147 diff = set(browser_list).symmetric_difference(set(gpu_list)) 149 diff = set(browser_list).symmetric_difference(set(gpu_list))
148 if len(diff) > 0: 150 if len(diff) > 0:
149 print 'Test failed. Printing page contents:' 151 print 'Test failed. Printing page contents:'
150 print tab.EvaluateJavaScript('document.body.innerHTML') 152 print tab.EvaluateJavaScript('document.body.innerHTML')
151 raise page_test.Failure('Browser and GPU process list of driver bug' \ 153 raise legacy_page_test.Failure(
152 'workarounds are not equal: %s != %s, diff: %s' % \ 154 'Browser and GPU process list of driver bug'
155 'workarounds are not equal: %s != %s, diff: %s' %
153 (browser_list, gpu_list, list(diff))) 156 (browser_list, gpu_list, list(diff)))
154 157
155 basic_infos = tab.EvaluateJavaScript('browserBridge.gpuInfo.basic_info') 158 basic_infos = tab.EvaluateJavaScript('browserBridge.gpuInfo.basic_info')
156 disabled_gl_extensions = None 159 disabled_gl_extensions = None
157 for info in basic_infos: 160 for info in basic_infos:
158 if info['description'].startswith('Disabled Extensions'): 161 if info['description'].startswith('Disabled Extensions'):
159 disabled_gl_extensions = info['value'] 162 disabled_gl_extensions = info['value']
160 break 163 break
161 164
162 return gpu_list, disabled_gl_extensions 165 return gpu_list, disabled_gl_extensions
(...skipping 28 matching lines...) Expand all
191 def __init__(self, story_set, expectations): 194 def __init__(self, story_set, expectations):
192 super(GpuInfoCompletePage, self).__init__( 195 super(GpuInfoCompletePage, self).__init__(
193 url='file://../../data/gpu/functional_3d_css.html', 196 url='file://../../data/gpu/functional_3d_css.html',
194 name='GpuProcess.gpu_info_complete', 197 name='GpuProcess.gpu_info_complete',
195 story_set=story_set, 198 story_set=story_set,
196 expectations=expectations) 199 expectations=expectations)
197 200
198 def Validate(self, tab, results): 201 def Validate(self, tab, results):
199 # Regression test for crbug.com/454906 202 # Regression test for crbug.com/454906
200 if not tab.browser.supports_system_info: 203 if not tab.browser.supports_system_info:
201 raise page_test.Failure('Browser must support system info') 204 raise legacy_page_test.Failure('Browser must support system info')
202 system_info = tab.browser.GetSystemInfo() 205 system_info = tab.browser.GetSystemInfo()
203 if not system_info.gpu: 206 if not system_info.gpu:
204 raise page_test.Failure('Target machine must have a GPU') 207 raise legacy_page_test.Failure('Target machine must have a GPU')
205 if not system_info.gpu.aux_attributes: 208 if not system_info.gpu.aux_attributes:
206 raise page_test.Failure('Browser must support GPU aux attributes') 209 raise legacy_page_test.Failure('Browser must support GPU aux attributes')
207 if not 'gl_renderer' in system_info.gpu.aux_attributes: 210 if not 'gl_renderer' in system_info.gpu.aux_attributes:
208 raise page_test.Failure('Browser must have gl_renderer in aux attribs') 211 raise legacy_page_test.Failure(
212 'Browser must have gl_renderer in aux attribs')
209 if len(system_info.gpu.aux_attributes['gl_renderer']) <= 0: 213 if len(system_info.gpu.aux_attributes['gl_renderer']) <= 0:
210 raise page_test.Failure('Must have a non-empty gl_renderer string') 214 raise legacy_page_test.Failure(
215 'Must have a non-empty gl_renderer string')
211 216
212 217
213 class NoGpuProcessSharedPageState(GpuProcessSharedPageState): 218 class NoGpuProcessSharedPageState(GpuProcessSharedPageState):
214 def __init__(self, test, finder_options, story_set): 219 def __init__(self, test, finder_options, story_set):
215 super(NoGpuProcessSharedPageState, self).__init__( 220 super(NoGpuProcessSharedPageState, self).__init__(
216 test, finder_options, story_set) 221 test, finder_options, story_set)
217 options = finder_options.browser_options 222 options = finder_options.browser_options
218 223
219 if options.browser_type.startswith('android'): 224 if options.browser_type.startswith('android'):
220 # Android doesn't support starting up the browser without any 225 # Android doesn't support starting up the browser without any
(...skipping 29 matching lines...) Expand all
250 url='about:blank', 255 url='about:blank',
251 name='GpuProcess.no_gpu_process', 256 name='GpuProcess.no_gpu_process',
252 page_set=story_set, 257 page_set=story_set,
253 shared_page_state_class=NoGpuProcessSharedPageState, 258 shared_page_state_class=NoGpuProcessSharedPageState,
254 expectations=expectations) 259 expectations=expectations)
255 260
256 def Validate(self, tab, results): 261 def Validate(self, tab, results):
257 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' 262 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()'
258 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) 263 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js)
259 if has_gpu_process: 264 if has_gpu_process:
260 raise page_test.Failure('GPU process detected') 265 raise legacy_page_test.Failure('GPU process detected')
261 266
262 267
263 class SoftwareGpuProcessSharedPageState(GpuProcessSharedPageState): 268 class SoftwareGpuProcessSharedPageState(GpuProcessSharedPageState):
264 def __init__(self, test, finder_options, story_set): 269 def __init__(self, test, finder_options, story_set):
265 super(SoftwareGpuProcessSharedPageState, self).__init__( 270 super(SoftwareGpuProcessSharedPageState, self).__init__(
266 test, finder_options, story_set) 271 test, finder_options, story_set)
267 options = finder_options.browser_options 272 options = finder_options.browser_options
268 273
269 # Hit exception from id 50 from kSoftwareRenderingListJson. 274 # Hit exception from id 50 from kSoftwareRenderingListJson.
270 options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de') 275 options.AppendExtraBrowserArgs('--gpu-testing-vendor-id=0x10de')
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 url='chrome:gpu', 307 url='chrome:gpu',
303 name='GpuProcess.skip_gpu_process', 308 name='GpuProcess.skip_gpu_process',
304 page_set=story_set, 309 page_set=story_set,
305 shared_page_state_class=SkipGpuProcessSharedPageState, 310 shared_page_state_class=SkipGpuProcessSharedPageState,
306 expectations=expectations) 311 expectations=expectations)
307 312
308 def Validate(self, tab, results): 313 def Validate(self, tab, results):
309 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' 314 has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()'
310 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) 315 has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js)
311 if has_gpu_process: 316 if has_gpu_process:
312 raise page_test.Failure('GPU process detected') 317 raise legacy_page_test.Failure('GPU process detected')
313 318
314 319
315 class DriverBugWorkaroundsShared(GpuProcessSharedPageState): 320 class DriverBugWorkaroundsShared(GpuProcessSharedPageState):
316 def __init__(self, test, finder_options, story_set): 321 def __init__(self, test, finder_options, story_set):
317 super(DriverBugWorkaroundsShared, self).__init__( 322 super(DriverBugWorkaroundsShared, self).__init__(
318 test, finder_options, story_set) 323 test, finder_options, story_set)
319 options = finder_options.browser_options 324 options = finder_options.browser_options
320 options.AppendExtraBrowserArgs('--use_gpu_driver_workaround_for_testing') 325 options.AppendExtraBrowserArgs('--use_gpu_driver_workaround_for_testing')
321 326
322 327
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 result = result and status == 'enabled_on' 558 result = result and status == 'enabled_on'
554 elif name == 'native_gpu_memory_buffers': 559 elif name == 'native_gpu_memory_buffers':
555 result = result and status == 'disabled_software' 560 result = result and status == 'disabled_software'
556 elif name == 'webgl': 561 elif name == 'webgl':
557 result = result and status == 'enabled_readback' 562 result = result and status == 'enabled_readback'
558 elif name == 'webgl2': 563 elif name == 'webgl2':
559 result = result and status == 'unavailable_off' 564 result = result and status == 'unavailable_off'
560 else: 565 else:
561 result = result and status == 'unavailable_software' 566 result = result and status == 'unavailable_software'
562 if not result: 567 if not result:
563 raise page_test.Failure('WebGL readback setup failed: %s' \ 568 raise legacy_page_test.Failure('WebGL readback setup failed: %s' \
564 % feature_status_list) 569 % feature_status_list)
565 570
566 571
567 class HasTransparentVisualsShared(GpuProcessSharedPageState): 572 class HasTransparentVisualsShared(GpuProcessSharedPageState):
568 def __init__(self, test, finder_options, story_set): 573 def __init__(self, test, finder_options, story_set):
569 super(HasTransparentVisualsShared, self).__init__( 574 super(HasTransparentVisualsShared, self).__init__(
570 test, finder_options, story_set) 575 test, finder_options, story_set)
571 options = finder_options.browser_options 576 options = finder_options.browser_options
572 if sys.platform.startswith('linux'): 577 if sys.platform.startswith('linux'):
573 # Hit id 173 from kGpuDriverBugListJson. 578 # Hit id 173 from kGpuDriverBugListJson.
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 if self.expected_workarounds is None: 703 if self.expected_workarounds is None:
699 return 704 return
700 705
701 recorded_info = super(OnlyOneWorkaroundPage, self).Validate(tab, results) 706 recorded_info = super(OnlyOneWorkaroundPage, self).Validate(tab, results)
702 gpu_list, disabled_gl_extensions = recorded_info 707 gpu_list, disabled_gl_extensions = recorded_info
703 708
704 diff = set(self.expected_workarounds).symmetric_difference(set(gpu_list)) 709 diff = set(self.expected_workarounds).symmetric_difference(set(gpu_list))
705 if len(diff) > 0: 710 if len(diff) > 0:
706 print 'Test failed. Printing page contents:' 711 print 'Test failed. Printing page contents:'
707 print tab.EvaluateJavaScript('document.body.innerHTML') 712 print tab.EvaluateJavaScript('document.body.innerHTML')
708 raise page_test.Failure('GPU process and expected list of driver bug' \ 713 raise legacy_page_test.Failure(
709 'workarounds are not equal: %s != %s, diff: %s' % \ 714 'GPU process and expected list of driver bug'
715 'workarounds are not equal: %s != %s, diff: %s' %
710 (self.expected_workarounds, gpu_list, list(diff))) 716 (self.expected_workarounds, gpu_list, list(diff)))
711 717
712 if self.expected_disabled_exts != disabled_gl_extensions: 718 if self.expected_disabled_exts != disabled_gl_extensions:
713 print 'Test failed. Printing page contents:' 719 print 'Test failed. Printing page contents:'
714 print tab.EvaluateJavaScript('document.body.innerHTML') 720 print tab.EvaluateJavaScript('document.body.innerHTML')
715 raise page_test.Failure('The expected disabled gl extensions are ' \ 721 raise legacy_page_test.Failure(
716 'incorrect: %s != %s:' % \ 722 'The expected disabled gl extensions are '
723 'incorrect: %s != %s:' %
717 (self.expected_disabled_exts, disabled_gl_extensions)) 724 (self.expected_disabled_exts, disabled_gl_extensions))
718 725
719 726
720 class GpuProcessTestsStorySet(story_set_module.StorySet): 727 class GpuProcessTestsStorySet(story_set_module.StorySet):
721 728
722 """ Tests that accelerated content triggers the creation of a GPU process """ 729 """ Tests that accelerated content triggers the creation of a GPU process """
723 730
724 def __init__(self, expectations, is_platform_android): 731 def __init__(self, expectations, is_platform_android):
725 super(GpuProcessTestsStorySet, self).__init__( 732 super(GpuProcessTestsStorySet, self).__init__(
726 serving_dirs=set(['../../../../content/test/data'])) 733 serving_dirs=set(['../../../../content/test/data']))
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 769
763 # There is currently no entry in kSoftwareRenderingListJson that enables 770 # There is currently no entry in kSoftwareRenderingListJson that enables
764 # a software GL driver on Android. 771 # a software GL driver on Android.
765 self.AddStory(SoftwareGpuProcessPage(self, expectations)) 772 self.AddStory(SoftwareGpuProcessPage(self, expectations))
766 773
767 @property 774 @property
768 def allow_mixed_story_states(self): 775 def allow_mixed_story_states(self):
769 # Return True here in order to be able to run pages with different browser 776 # Return True here in order to be able to run pages with different browser
770 # command line arguments. 777 # command line arguments.
771 return True 778 return True
OLDNEW
« no previous file with comments | « content/test/gpu/gpu_tests/trace_test.py ('k') | tools/chrome_proxy/common/chrome_proxy_measurements.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698