Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 # found in the LICENSE file. | |
| 4 import accelerated_expectations | |
| 5 | |
| 6 from telemetry import test | |
| 7 from telemetry.page import page_set | |
| 8 from telemetry.page import page_test | |
| 9 | |
| 10 test_harness_script = r""" | |
| 11 function VerifyHardwareAccelerated(feature) { | |
| 12 feature += ': ' | |
| 13 var list = document.querySelector('.feature-status-list'); | |
| 14 for (var i=0; i < list.childElementCount; i++) { | |
| 15 var span_list = list.children[i].getElementsByTagName('span'); | |
| 16 var feature_str = span_list[0].textContent; | |
| 17 var value_str = span_list[1].textContent; | |
| 18 if ((feature_str == feature) && | |
| 19 (value_str == 'Hardware accelerated')) { | |
| 20 return true; | |
| 21 } | |
| 22 } | |
| 23 return false; | |
| 24 }; | |
| 25 """; | |
| 26 | |
| 27 class AcceleratedValidator(page_test.PageTest): | |
| 28 def __init__(self): | |
| 29 super(AcceleratedValidator, self).__init__('ValidatePage') | |
| 30 | |
| 31 def ValidatePage(self, page, tab, results): | |
| 32 feature = page.feature | |
| 33 if not tab.EvaluateJavaScript('VerifyHardwareAccelerated("%s")' % feature): | |
| 34 raise page_test.Failure('%s not hardware accelerated' % feature) | |
| 35 | |
| 36 def safe_feature_name(feature): | |
| 37 return feature.lower().replace(' ', '_') | |
| 38 | |
| 39 class Accelerated(test.Test): | |
|
Ken Russell (switch to Gerrit)
2013/10/28 20:57:54
Please choose a more descriptive name. CheckHardwa
| |
| 40 """Tests GPU acceleration is reported as active""" | |
| 41 test = AcceleratedValidator | |
| 42 | |
| 43 def CreateExpectations(self, page_set): | |
| 44 return accelerated_expectations.AcceleratedExpectations() | |
| 45 | |
| 46 def CreatePageSet(self, options): | |
| 47 features = ['WebGL', 'Canvas', '3D CSS'] | |
| 48 | |
| 49 page_set_dict = { | |
| 50 'description': 'Tests GPU acceleration is reported as active', | |
| 51 'user_agent_type': 'desktop', | |
| 52 'pages': [] | |
| 53 } | |
| 54 | |
| 55 pages = page_set_dict['pages'] | |
| 56 | |
| 57 for feature in features: | |
| 58 pages.append({ | |
| 59 'name': 'Accelerated.%s_accelerated' % safe_feature_name(feature), | |
| 60 'url': 'chrome://gpu', | |
| 61 'navigate_steps': [ | |
| 62 { "action": 'navigate' } | |
| 63 ], | |
| 64 'script_to_evaluate_on_commit': test_harness_script, | |
| 65 'feature': feature | |
| 66 }) | |
| 67 | |
| 68 return page_set.PageSet.FromDict(page_set_dict, '') | |
| OLD | NEW |