Index: content/test/gpu/gpu_tests/webgl_debug_renderer_info.py |
diff --git a/content/test/gpu/gpu_tests/webgl_debug_renderer_info.py b/content/test/gpu/gpu_tests/webgl_debug_renderer_info.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9dba4022e5fc72ecab2adfa8e14b6bd35120b4fb |
--- /dev/null |
+++ b/content/test/gpu/gpu_tests/webgl_debug_renderer_info.py |
@@ -0,0 +1,85 @@ |
+# Copyright (c) 2013 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. |
+import os |
+import optparse |
+ |
+from telemetry import test as test_module |
+from telemetry.core import util |
+from telemetry.page import page_set |
+from telemetry.page import page_test |
+ |
+data_path = os.path.join( |
+ util.GetChromiumSrcDir(), 'content', 'test', 'data', 'gpu') |
+ |
+wait_timeout = 20 # seconds |
bajones
2013/10/31 00:04:49
wait_timeout not used. Please remove it.
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+ |
+harness_script = r""" |
+ var domAutomationController = {}; |
+ |
+ domAutomationController._succeeded = false; |
+ |
+ domAutomationController.setAutomationId = function(id) {} |
+ |
+ domAutomationController.send = function(msg) { |
+ msg = msg.toLowerCase() |
+ if (msg == "success") |
+ domAutomationController._succeeded = true; |
+ else |
+ domAutomationController._succeeded = false; |
+ } |
+ |
+ window.domAutomationController = domAutomationController; |
+ console.log("Harness injected."); |
bajones
2013/10/31 00:04:49
Please remove this console.log.
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+""" |
+ |
+class _WebGLDebugRendererInfoValidator(page_test.PageTest): |
+ def __init__(self): |
+ super(_WebGLDebugRendererInfoValidator, self).__init__('ValidatePage') |
+ |
+ def CustomizeBrowserOptions(self, options): |
+ chrome_finch_option = options.finch_option |
+ if options.finch_option == "bypassed": |
+ chrome_finch_option = "enabled" |
+ options.AppendExtraBrowserArgs( |
+ '--force-fieldtrials=WebGLDebugRendererInfo/%s/' % |
+ chrome_finch_option) |
+ options.AppendExtraBrowserArgs('--google-base-url=http://127.0.0.1') |
+ if options.finch_option == "bypassed": |
+ options.AppendExtraBrowserArgs('--disable-webgl-debug-renderer-info') |
bajones
2013/10/31 00:04:49
Nit: Since the order of the browser args doesn't m
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+ |
+ def ValidatePage(self, page, tab, results): |
+ if not tab.EvaluateJavaScript('window.domAutomationController._succeeded'): |
+ raise page_test.Failure('Test failed') |
+ |
+class WebGLDebugRendererInfo(test_module.Test): |
+ enabled = True |
bajones
2013/10/31 00:04:49
Nit: This enabled=True is not necessary. Remove it
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+ test = _WebGLDebugRendererInfoValidator |
+ |
+ @staticmethod |
+ def AddTestCommandLineOptions(parser): |
+ group = optparse.OptionGroup(parser, 'WebGL conformance options') |
bajones
2013/10/31 00:04:49
Give the options group a better name. "Finch exper
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+ group.add_option('--finch-option', |
+ help='Enable or disable WebGLDebugRendererInfo finch experiment', |
bajones
2013/10/31 00:04:49
Would it be more helpful to have this read "Enable
Zhenyao Mo
2013/10/31 00:26:13
Done.
|
+ default='enabled') |
+ parser.add_option_group(group) |
+ |
+ def CreatePageSet(self, options): |
+ page_set_dict = { |
+ 'description': 'Test cases for WEBGL_debug_renderer_info extension', |
+ 'user_agent_type': 'desktop', |
+ 'serving_dirs': [''], |
+ 'pages': [ |
+ { |
+ 'name': 'WEBGL_debug_render_info.%s' % |
+ options.finch_option, |
+ 'url': 'file://webgl_debug_renderer_info.html?query=%s' % |
+ options.finch_option, |
+ 'script_to_evaluate_on_commit': harness_script, |
+ 'navigate_steps': [ |
+ { 'action': 'navigate' } |
+ ] |
+ } |
+ ] |
+ } |
+ return page_set.PageSet.FromDict(page_set_dict, data_path) |