| OLD | NEW |
| 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 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 elif name == 'native_gpu_memory_buffers': | 491 elif name == 'native_gpu_memory_buffers': |
| 492 result = result and status == 'disabled_software' | 492 result = result and status == 'disabled_software' |
| 493 elif name == 'webgl': | 493 elif name == 'webgl': |
| 494 result = result and status == 'enabled_readback' | 494 result = result and status == 'enabled_readback' |
| 495 else: | 495 else: |
| 496 result = result and status == 'unavailable_software' | 496 result = result and status == 'unavailable_software' |
| 497 if not result: | 497 if not result: |
| 498 raise page_test.Failure('WebGL readback setup failed: %s' \ | 498 raise page_test.Failure('WebGL readback setup failed: %s' \ |
| 499 % feature_status_list) | 499 % feature_status_list) |
| 500 | 500 |
| 501 |
| 502 class EqualBugWorkaroundsInBrowserAndGpuProcessPage(gpu_test_base.PageBase): |
| 503 def __init__(self, story_set, expectations): |
| 504 super(EqualBugWorkaroundsInBrowserAndGpuProcessPage, self).__init__( |
| 505 url='chrome:gpu', |
| 506 name='GpuProcess.equal_bug_workarounds_in_browser_and_gpu_process', |
| 507 page_set=story_set, |
| 508 shared_page_state_class=GpuProcessSharedPageState, |
| 509 expectations=expectations) |
| 510 |
| 511 def Validate(self, tab, results): |
| 512 browser_list = tab.EvaluateJavaScript('GetDriverBugWorkarounds()') |
| 513 gpu_list = tab.EvaluateJavaScript( \ |
| 514 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()') |
| 515 |
| 516 diff = set(browser_list).symmetric_difference(set(gpu_list)) |
| 517 if len(diff) > 0: |
| 518 print 'Test failed. Printing page contents:' |
| 519 print tab.EvaluateJavaScript('document.body.innerHTML') |
| 520 raise page_test.Failure('Browser and GPU process list of driver bug' \ |
| 521 'workarounds are not equal: %s != %s, diff: %s' % \ |
| 522 (browser_list, gpu_list, list(diff))) |
| 523 |
| 524 |
| 501 class GpuProcessTestsStorySet(story_set_module.StorySet): | 525 class GpuProcessTestsStorySet(story_set_module.StorySet): |
| 502 | 526 |
| 503 """ Tests that accelerated content triggers the creation of a GPU process """ | 527 """ Tests that accelerated content triggers the creation of a GPU process """ |
| 504 | 528 |
| 505 def __init__(self, expectations, is_platform_android): | 529 def __init__(self, expectations, is_platform_android): |
| 506 super(GpuProcessTestsStorySet, self).__init__( | 530 super(GpuProcessTestsStorySet, self).__init__( |
| 507 serving_dirs=set(['../../../../content/test/data'])) | 531 serving_dirs=set(['../../../../content/test/data'])) |
| 508 | 532 |
| 509 urls_and_names_list = [ | 533 urls_and_names_list = [ |
| 510 ('file://../../data/gpu/functional_canvas_demo.html', | 534 ('file://../../data/gpu/functional_canvas_demo.html', |
| (...skipping 13 matching lines...) Expand all Loading... |
| 524 self.AddStory(SoftwareGpuProcessPage(self, expectations)) | 548 self.AddStory(SoftwareGpuProcessPage(self, expectations)) |
| 525 if not is_platform_android: | 549 if not is_platform_android: |
| 526 self.AddStory(SkipGpuProcessPage(self, expectations)) | 550 self.AddStory(SkipGpuProcessPage(self, expectations)) |
| 527 self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations)) | 551 self.AddStory(DriverBugWorkaroundsInGpuProcessPage(self, expectations)) |
| 528 self.AddStory(IdentifyActiveGpuPage1(self, expectations)) | 552 self.AddStory(IdentifyActiveGpuPage1(self, expectations)) |
| 529 self.AddStory(IdentifyActiveGpuPage2(self, expectations)) | 553 self.AddStory(IdentifyActiveGpuPage2(self, expectations)) |
| 530 self.AddStory(IdentifyActiveGpuPage3(self, expectations)) | 554 self.AddStory(IdentifyActiveGpuPage3(self, expectations)) |
| 531 self.AddStory(IdentifyActiveGpuPage4(self, expectations)) | 555 self.AddStory(IdentifyActiveGpuPage4(self, expectations)) |
| 532 self.AddStory(ReadbackWebGLGpuProcessPage(self, expectations)) | 556 self.AddStory(ReadbackWebGLGpuProcessPage(self, expectations)) |
| 533 self.AddStory(DriverBugWorkaroundsUponGLRendererPage(self, expectations)) | 557 self.AddStory(DriverBugWorkaroundsUponGLRendererPage(self, expectations)) |
| 558 self.AddStory(EqualBugWorkaroundsInBrowserAndGpuProcessPage(self, |
| 559 expectations)) |
| 534 | 560 |
| 535 @property | 561 @property |
| 536 def allow_mixed_story_states(self): | 562 def allow_mixed_story_states(self): |
| 537 # Return True here in order to be able to run pages with different browser | 563 # Return True here in order to be able to run pages with different browser |
| 538 # command line arguments. | 564 # command line arguments. |
| 539 return True | 565 return True |
| OLD | NEW |