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

Unified Diff: content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py

Issue 2619493004: Port hw_accel_feature and screenshot_sync tests to new harness. (Closed)
Patch Set: Increase screenshot_sync repetitions back to 20. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py
diff --git a/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py b/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..fe0d42873aba1eeecd703b1b8d9aa0070cb1a5f1
--- /dev/null
+++ b/content/test/gpu/gpu_tests/hardware_accelerated_feature_integration_test.py
@@ -0,0 +1,72 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from gpu_tests import gpu_integration_test
+import gpu_tests.hardware_accelerated_feature_expectations as hw_expectations
+
+test_harness_script = r"""
+ function VerifyHardwareAccelerated(feature) {
+ feature += ': '
+ var list = document.querySelector('.feature-status-list');
+ for (var i=0; i < list.childElementCount; i++) {
+ var span_list = list.children[i].getElementsByTagName('span');
+ var feature_str = span_list[0].textContent;
+ var value_str = span_list[1].textContent;
+ if ((feature_str == feature) &&
+ (value_str == 'Hardware accelerated')) {
+ return true;
+ }
+ }
+ return false;
+ };
+"""
+
+def safe_feature_name(feature):
+ return feature.lower().replace(' ', '_')
+
+class HardwareAcceleratedFeatureIntegrationTest(
+ gpu_integration_test.GpuIntegrationTest):
+ """Tests GPU acceleration is reported as active for various features."""
+
+ @classmethod
+ def Name(cls):
+ """The name by which this test is invoked on the command line."""
+ return 'hardware_accelerated_feature'
+
+ @classmethod
+ def setUpClass(cls):
+ super(cls, HardwareAcceleratedFeatureIntegrationTest).setUpClass()
+ cls.SetBrowserOptions(cls._finder_options)
+ cls.StartBrowser()
+ cls.SetStaticServerDirs([])
+
+ @classmethod
+ def _CreateExpectations(cls):
+ return hw_expectations.HardwareAcceleratedFeatureExpectations()
+
+ def _Navigate(self, url):
+ # It's crucial to use the action_runner, rather than the tab's
+ # Navigate method directly. It waits for the document ready state
+ # to become interactive or better, avoiding critical race
+ # conditions.
+ self.tab.action_runner.Navigate(
+ url, script_to_evaluate_on_commit=test_harness_script)
+
+ @classmethod
+ def GenerateGpuTests(cls, options):
+ tests = ('WebGL', 'Canvas')
+ for feature in tests:
+ yield('HardwareAcceleratedFeature_%s_accelerated' %
+ safe_feature_name(feature),
+ 'chrome://gpu',
+ (feature))
+
+ def RunActualGpuTest(self, test_path, *args):
+ feature = args[0]
+ self._Navigate(test_path)
+ tab = self.tab
+ if not tab.EvaluateJavaScript('VerifyHardwareAccelerated("%s")' % feature):
+ print 'Test failed. Printing page contents:'
+ print tab.EvaluateJavaScript('document.body.innerHTML')
+ self.fail('%s not hardware accelerated' % feature)
« no previous file with comments | « content/test/gpu/gpu_tests/hardware_accelerated_feature_expectations.py ('k') | content/test/gpu/gpu_tests/screenshot_sync.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698