OLD | NEW |
| (Empty) |
1 # Copyright 2013 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 from gpu_tests import gpu_test_base | |
5 import gpu_tests.hardware_accelerated_feature_expectations as hw_expectations | |
6 | |
7 from telemetry.page import legacy_page_test | |
8 from telemetry.story import story_set as story_set_module | |
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 HardwareAcceleratedFeatureValidator(gpu_test_base.ValidatorBase): | |
28 def ValidateAndMeasurePage(self, page, tab, results): | |
29 feature = page.feature | |
30 if not tab.EvaluateJavaScript('VerifyHardwareAccelerated("%s")' % feature): | |
31 print 'Test failed. Printing page contents:' | |
32 print tab.EvaluateJavaScript('document.body.innerHTML') | |
33 raise legacy_page_test.Failure('%s not hardware accelerated' % feature) | |
34 | |
35 def safe_feature_name(feature): | |
36 return feature.lower().replace(' ', '_') | |
37 | |
38 class ChromeGpuPage(gpu_test_base.PageBase): | |
39 def __init__(self, story_set, feature, expectations): | |
40 super(ChromeGpuPage, self).__init__( | |
41 url='chrome://gpu', page_set=story_set, base_dir=story_set.base_dir, | |
42 name=('HardwareAcceleratedFeature.%s_accelerated' % | |
43 safe_feature_name(feature)), | |
44 expectations=expectations) | |
45 self.feature = feature | |
46 self.script_to_evaluate_on_commit = test_harness_script | |
47 | |
48 class HardwareAcceleratedFeature(gpu_test_base.TestBase): | |
49 """Tests GPU acceleration is reported as active for various features""" | |
50 test = HardwareAcceleratedFeatureValidator | |
51 | |
52 @classmethod | |
53 def Name(cls): | |
54 return 'hardware_accelerated_feature' | |
55 | |
56 def _CreateExpectations(self): | |
57 return hw_expectations.HardwareAcceleratedFeatureExpectations() | |
58 | |
59 def CreateStorySet(self, options): | |
60 features = ['WebGL', 'Canvas'] | |
61 | |
62 ps = story_set_module.StorySet() | |
63 | |
64 for feature in features: | |
65 ps.AddStory(ChromeGpuPage(story_set=ps, feature=feature, | |
66 expectations=self.GetExpectations())) | |
67 return ps | |
OLD | NEW |