diff options
author | chrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-31 13:19:03 +0000 |
---|---|---|
committer | chrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-31 13:19:03 +0000 |
commit | ee3ae33a94a1b5587576e670655db48211b3ed9b (patch) | |
tree | 95fcfbb52692a06b321dd50ab373420d280e4fee /content | |
parent | f3693f98ddc553151c930683586b6e7999f28299 (diff) | |
download | chromium_src-ee3ae33a94a1b5587576e670655db48211b3ed9b.zip chromium_src-ee3ae33a94a1b5587576e670655db48211b3ed9b.tar.gz chromium_src-ee3ae33a94a1b5587576e670655db48211b3ed9b.tar.bz2 |
[telemetry] Introduce inject_scripts to replace script_to_evaluate_on_commit.
This CL is to make webdriver-based browser also supports running some javascript before those in the page are run, because the original script_to_evaluate_on_commit is chrome-specific.
BUG=none
TEST=tools/telemetry/run_tests, tools/perf/run_tests --browser=release, tools/perf/run_measurement --browser=release pica, tools/perf/run_measurement --browser=release blink_perf third_party/WebKit/PerformanceTests/, tools/perf/run_multipage_benchmarks --browser=release page_cycler tools/perf/page_sets/page_cycler/moz.json & morejs.json, gpu tests under content/test/gpu/gpu_tests/. No new failures are introduced.
Review URL: https://codereview.chromium.org/23444006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232099 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/test/gpu/gpu_tests/context_lost.js | 32 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/context_lost.py | 30 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/gpu_process.js | 13 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/gpu_process.py | 21 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/hardware_accelerated_feature.py | 6 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/memory.js | 50 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/memory.py | 65 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/pixel.js | 27 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/pixel.py | 29 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/webgl_conformance.js | 41 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/webgl_conformance.py | 38 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/webgl_robustness.js | 40 | ||||
-rw-r--r-- | content/test/gpu/gpu_tests/webgl_robustness.py | 44 |
13 files changed, 242 insertions, 194 deletions
diff --git a/content/test/gpu/gpu_tests/context_lost.js b/content/test/gpu/gpu_tests/context_lost.js new file mode 100644 index 0000000..eb23433 --- /dev/null +++ b/content/test/gpu/gpu_tests/context_lost.js @@ -0,0 +1,32 @@ +// Copyright 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. + +(function() { + if (window.parent != window) // Ignore subframes. + return; + + var domAutomationController = {}; + + domAutomationController._loaded = false; + domAutomationController._succeeded = false; + domAutomationController._finished = false; + + domAutomationController.setAutomationId = function(id) {}; + + domAutomationController.send = function(msg) { + msg = msg.toLowerCase(); + if (msg == "loaded") { + domAutomationController._loaded = true; + } else if (msg == "success") { + domAutomationController._succeeded = true; + domAutomationController._finished = true; + } else { + domAutomationController._succeeded = false; + domAutomationController._finished = true; + } + }; + + window.domAutomationController = domAutomationController; + console.log("Harness injected."); +})(); diff --git a/content/test/gpu/gpu_tests/context_lost.py b/content/test/gpu/gpu_tests/context_lost.py index ad56385..fdb774d 100644 --- a/content/test/gpu/gpu_tests/context_lost.py +++ b/content/test/gpu/gpu_tests/context_lost.py @@ -13,31 +13,6 @@ data_path = os.path.join( wait_timeout = 20 # seconds -harness_script = r""" - var domAutomationController = {}; - - domAutomationController._loaded = false; - domAutomationController._succeeded = false; - domAutomationController._finished = false; - - domAutomationController.setAutomationId = function(id) {} - - domAutomationController.send = function(msg) { - msg = msg.toLowerCase() - if (msg == "loaded") { - domAutomationController._loaded = true; - } else if (msg == "success") { - domAutomationController._succeeded = true; - domAutomationController._finished = true; - } else { - domAutomationController._succeeded = false; - domAutomationController._finished = true; - } - } - - window.domAutomationController = domAutomationController; - console.log("Harness injected."); -""" class _ContextLostValidator(page_test.PageTest): def __init__(self): @@ -53,6 +28,9 @@ class _ContextLostValidator(page_test.PageTest): # Required for about:gpucrash handling from Telemetry. options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') + def InjectJavascript(self): + return [os.path.join(os.path.dirname(__file__), 'context_lost.js')] + def ValidatePage(self, page, tab, results): if page.kill_gpu_process: if not tab.browser.supports_tab_control: @@ -91,7 +69,6 @@ class ContextLost(test_module.Test): { 'name': 'ContextLost.WebGLContextLostFromGPUProcessExit', 'url': 'file://webgl.html?query=kill_after_notification', - 'script_to_evaluate_on_commit': harness_script, 'navigate_steps': [ { 'action': 'navigate' }, { 'action': 'wait', @@ -102,7 +79,6 @@ class ContextLost(test_module.Test): { 'name': 'ContextLost.WebGLContextLostFromLoseContextExtension', 'url': 'file://webgl.html?query=WEBGL_lose_context', - 'script_to_evaluate_on_commit': harness_script, 'navigate_steps': [ { 'action': 'navigate' }, { 'action': 'wait', diff --git a/content/test/gpu/gpu_tests/gpu_process.js b/content/test/gpu/gpu_tests/gpu_process.js new file mode 100644 index 0000000..573c1e8 --- /dev/null +++ b/content/test/gpu/gpu_tests/gpu_process.js @@ -0,0 +1,13 @@ +// Copyright 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. + +(function() { + var domAutomationController = {}; + domAutomationController._finished = false; + domAutomationController.setAutomationId = function(id) {}; + domAutomationController.send = function(msg) { + domAutomationController._finished = true; + }; + window.domAutomationController = domAutomationController; +})(); diff --git a/content/test/gpu/gpu_tests/gpu_process.py b/content/test/gpu/gpu_tests/gpu_process.py index 3143e42..2aa2665 100644 --- a/content/test/gpu/gpu_tests/gpu_process.py +++ b/content/test/gpu/gpu_tests/gpu_process.py @@ -3,20 +3,12 @@ # found in the LICENSE file. import gpu_process_expectations as expectations +import os + from telemetry import test from telemetry.page import page_set from telemetry.page import page_test -test_harness_script = r""" - var domAutomationController = {}; - domAutomationController._finished = false; - domAutomationController.setAutomationId = function(id) {} - domAutomationController.send = function(msg) { - domAutomationController._finished = true; - } - - window.domAutomationController = domAutomationController; -""" class GpuProcessValidator(page_test.PageTest): def __init__(self): @@ -26,6 +18,9 @@ class GpuProcessValidator(page_test.PageTest): def CustomizeBrowserOptions(self, options): options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') + def InjectJavascript(self): + return [os.path.join(os.path.dirname(__file__), 'gpu_process.js')] + def ValidatePage(self, page, tab, results): has_gpu_process_js = 'chrome.gpuBenchmarking.hasGpuProcess()' has_gpu_process = tab.EvaluateJavaScript(has_gpu_process_js) @@ -39,9 +34,3 @@ class GpuProcess(test.Test): def CreateExpectations(self, page_set): return expectations.GpuProcessExpectations() - - def CreatePageSet(self, options): - page_set = super(GpuProcess, self).CreatePageSet(options) - for page in page_set.pages: - page.script_to_evaluate_on_commit = test_harness_script - return page_set diff --git a/content/test/gpu/gpu_tests/hardware_accelerated_feature.py b/content/test/gpu/gpu_tests/hardware_accelerated_feature.py index a584fa9..0b83852 100644 --- a/content/test/gpu/gpu_tests/hardware_accelerated_feature.py +++ b/content/test/gpu/gpu_tests/hardware_accelerated_feature.py @@ -60,10 +60,10 @@ class HardwareAcceleratedFeature(test.Test): safe_feature_name(feature), 'url': 'chrome://gpu', 'navigate_steps': [ - { "action": 'navigate' } + { 'action': 'navigate' }, + { 'action': 'javascript', 'expression': test_harness_script} ], - 'script_to_evaluate_on_commit': test_harness_script, 'feature': feature }) - return page_set.PageSet.FromDict(page_set_dict, '')
\ No newline at end of file + return page_set.PageSet.FromDict(page_set_dict, '') diff --git a/content/test/gpu/gpu_tests/memory.js b/content/test/gpu/gpu_tests/memory.js new file mode 100644 index 0000000..1503f71 --- /dev/null +++ b/content/test/gpu/gpu_tests/memory.js @@ -0,0 +1,50 @@ +// Copyright 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. + +(function() { + if (window.parent != window) // Ignore subframes. + return; + + // If changed, make sure the value can still be queried in memory.py. + var MEMORY_LIMIT_MB = 256; + + var domAutomationController = {}; + domAutomationController._finished = false; + + domAutomationController.send = function(msg) { + // This should wait until all effects of memory management complete. + // We will need to wait until all + // 1. pending commits from the main thread to the impl thread in the + // compositor complete (for visible compositors). + // 2. allocations that the renderer's impl thread will make due to the + // compositor and WebGL are completed. + // 3. pending GpuMemoryManager::Manage() calls to manage are made. + // 4. renderers' OnMemoryAllocationChanged callbacks in response to + // manager are made. + // Each step in this sequence can cause trigger the next (as a 1-2-3-4-1 + // cycle), so we will need to pump this cycle until it stabilizes. + + // Pump the cycle 8 times (in principle it could take an infinite number + // of iterations to settle). + + var rafCount = 0; + var totalRafCount = 8; + + function pumpRAF() { + if (rafCount == totalRafCount) { + domAutomationController._finished = true; + return; + } + ++rafCount; + window.requestAnimationFrame(pumpRAF); + } + pumpRAF(); + }; + + window.domAutomationController = domAutomationController; + + window.addEventListener("load", function() { + useGpuMemory(MEMORY_LIMIT_MB); + }, false); +})(); diff --git a/content/test/gpu/gpu_tests/memory.py b/content/test/gpu/gpu_tests/memory.py index c83d7b7..528d64d 100644 --- a/content/test/gpu/gpu_tests/memory.py +++ b/content/test/gpu/gpu_tests/memory.py @@ -1,57 +1,30 @@ # Copyright (c) 2012 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 re + from telemetry import test from telemetry.page import page_test -MEMORY_LIMIT_MB = 256 SINGLE_TAB_LIMIT_MB = 128 WIGGLE_ROOM_MB = 4 -test_harness_script = r""" - var domAutomationController = {}; - domAutomationController._finished = false; - - domAutomationController.send = function(msg) { - // This should wait until all effects of memory management complete. - // We will need to wait until all - // 1. pending commits from the main thread to the impl thread in the - // compositor complete (for visible compositors). - // 2. allocations that the renderer's impl thread will make due to the - // compositor and WebGL are completed. - // 3. pending GpuMemoryManager::Manage() calls to manage are made. - // 4. renderers' OnMemoryAllocationChanged callbacks in response to - // manager are made. - // Each step in this sequence can cause trigger the next (as a 1-2-3-4-1 - // cycle), so we will need to pump this cycle until it stabilizes. - - // Pump the cycle 8 times (in principle it could take an infinite number - // of iterations to settle). - - var rafCount = 0; - var totalRafCount = 8; - - function pumpRAF() { - if (rafCount == totalRafCount) { - domAutomationController._finished = true; - return; - } - ++rafCount; - window.requestAnimationFrame(pumpRAF); - } - pumpRAF(); - } - - window.domAutomationController = domAutomationController; - - window.addEventListener("load", function() { - useGpuMemory(%d); - }, false); -""" % MEMORY_LIMIT_MB class MemoryValidator(page_test.PageTest): def __init__(self): super(MemoryValidator, self).__init__('ValidatePage') + with open(os.path.join(os.path.dirname(__file__), 'memory.js'), 'r') as f: + script = f.read() + m = re.search('var MEMORY_LIMIT_MB = (\d+);', script) + if not m: + raise page_test.Failure('Fail to query MEMORY_LIMIT_MB from memory.js') + self.MEMORY_LIMIT_MB = int(m.group(1)) + + + def InjectJavascript(self): + return [os.path.join(os.path.dirname(__file__), 'memory.js')] def ValidatePage(self, page, tab, results): mb_used = MemoryValidator.GpuMemoryUsageMbytes(tab) @@ -59,7 +32,7 @@ class MemoryValidator(page_test.PageTest): if mb_used + WIGGLE_ROOM_MB < SINGLE_TAB_LIMIT_MB: raise page_test.Failure('Memory allocation too low') - if mb_used - WIGGLE_ROOM_MB > MEMORY_LIMIT_MB: + if mb_used - WIGGLE_ROOM_MB > self.MEMORY_LIMIT_MB: raise page_test.Failure('Memory allocation too high') @staticmethod @@ -71,16 +44,10 @@ class MemoryValidator(page_test.PageTest): def CustomizeBrowserOptions(self, options): options.AppendExtraBrowserArgs('--enable-logging') options.AppendExtraBrowserArgs( - '--force-gpu-mem-available-mb=%s' % MEMORY_LIMIT_MB) + '--force-gpu-mem-available-mb=%s' % self.MEMORY_LIMIT_MB) options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') class Memory(test.Test): """Tests GPU memory limits""" test = MemoryValidator page_set = 'page_sets/memory_tests.json' - - def CreatePageSet(self, options): - page_set = super(Memory, self).CreatePageSet(options) - for page in page_set.pages: - page.script_to_evaluate_on_commit = test_harness_script - return page_set
\ No newline at end of file diff --git a/content/test/gpu/gpu_tests/pixel.js b/content/test/gpu/gpu_tests/pixel.js new file mode 100644 index 0000000..c17ab4a --- /dev/null +++ b/content/test/gpu/gpu_tests/pixel.js @@ -0,0 +1,27 @@ +// Copyright 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. + +(function() { + if (window.parent != window) // Ignore subframes. + return; + + var domAutomationController = {}; + + domAutomationController._succeeded = false; + domAutomationController._finished = false; + + domAutomationController.setAutomationId = function(id) {}; + + domAutomationController.send = function(msg) { + domAutomationController._finished = true; + + if(msg.toLowerCase() == "success") { + domAutomationController._succeeded = true; + } else { + domAutomationController._succeeded = false; + } + }; + + window.domAutomationController = domAutomationController; +})(); diff --git a/content/test/gpu/gpu_tests/pixel.py b/content/test/gpu/gpu_tests/pixel.py index 4df18f1..64df734 100644 --- a/content/test/gpu/gpu_tests/pixel.py +++ b/content/test/gpu/gpu_tests/pixel.py @@ -17,26 +17,6 @@ test_data_dir = os.path.abspath(os.path.join( default_generated_data_dir = os.path.join(test_data_dir, 'generated') default_reference_image_dir = os.path.join(test_data_dir, 'gpu_reference') -test_harness_script = r""" - var domAutomationController = {}; - - domAutomationController._succeeded = false; - domAutomationController._finished = false; - - domAutomationController.setAutomationId = function(id) {} - - domAutomationController.send = function(msg) { - domAutomationController._finished = true; - - if(msg.toLowerCase() == "success") { - domAutomationController._succeeded = true; - } else { - domAutomationController._succeeded = false; - } - } - - window.domAutomationController = domAutomationController; -""" class PixelTestFailure(Exception): pass @@ -51,6 +31,9 @@ class PixelValidator(page_test.PageTest): def CustomizeBrowserOptions(self, options): options.AppendExtraBrowserArgs('--enable-gpu-benchmarking') + def InjectJavascript(self): + return [os.path.join(os.path.dirname(__file__), 'pixel.js')] + def ValidatePage(self, page, tab, results): if not _DidTestSucceed(tab): raise page_test.Failure('Page indicated a failure') @@ -165,9 +148,3 @@ class Pixel(test.Test): help='Chrome revision being tested.', default="unknownrev") parser.add_option_group(group) - - def CreatePageSet(self, options): - page_set = super(Pixel, self).CreatePageSet(options) - for page in page_set.pages: - page.script_to_evaluate_on_commit = test_harness_script - return page_set diff --git a/content/test/gpu/gpu_tests/webgl_conformance.js b/content/test/gpu/gpu_tests/webgl_conformance.js new file mode 100644 index 0000000..cfa084f --- /dev/null +++ b/content/test/gpu/gpu_tests/webgl_conformance.js @@ -0,0 +1,41 @@ +// Copyright 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. + +(function(){ + if (window.parent != window) // Ignore subframes. + return; + + var testHarness = {}; + testHarness._allTestSucceeded = true; + testHarness._messages = ''; + testHarness._failures = 0; + testHarness._finished = false; + testHarness._originalLog = window.console.log; + + testHarness.log = function(msg) { + testHarness._messages += msg + "\n"; + testHarness._originalLog.apply(window.console, [msg]); + }; + + testHarness.reportResults = function(success, msg) { + testHarness._allTestSucceeded = testHarness._allTestSucceeded && !!success; + if(!success) { + testHarness._failures++; + if(msg) { + testHarness.log(msg); + } + } + }; + testHarness.notifyFinished = function() { + testHarness._finished = true; + }; + testHarness.navigateToPage = function(src) { + var testFrame = document.getElementById("test-frame"); + testFrame.src = src; + }; + + window.webglTestHarness = testHarness; + window.parent.webglTestHarness = testHarness; + window.console.log = testHarness.log; +})(); diff --git a/content/test/gpu/gpu_tests/webgl_conformance.py b/content/test/gpu/gpu_tests/webgl_conformance.py index 3ac7dca..be19d1d 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance.py +++ b/content/test/gpu/gpu_tests/webgl_conformance.py @@ -16,40 +16,6 @@ from telemetry.page import page_test conformance_path = os.path.join( util.GetChromiumSrcDir(), 'third_party', 'webgl_conformance') -conformance_harness_script = r""" - var testHarness = {}; - testHarness._allTestSucceeded = true; - testHarness._messages = ''; - testHarness._failures = 0; - testHarness._finished = false; - testHarness._originalLog = window.console.log; - - testHarness.log = function(msg) { - testHarness._messages += msg + "\n"; - testHarness._originalLog.apply(window.console, [msg]); - } - - testHarness.reportResults = function(success, msg) { - testHarness._allTestSucceeded = testHarness._allTestSucceeded && !!success; - if(!success) { - testHarness._failures++; - if(msg) { - testHarness.log(msg); - } - } - }; - testHarness.notifyFinished = function() { - testHarness._finished = true; - }; - testHarness.navigateToPage = function(src) { - var testFrame = document.getElementById("test-frame"); - testFrame.src = src; - }; - - window.webglTestHarness = testHarness; - window.parent.webglTestHarness = testHarness; - window.console.log = testHarness.log; -""" def _DidWebGLTestSucceed(tab): return tab.EvaluateJavaScript('webglTestHarness._allTestSucceeded') @@ -101,7 +67,9 @@ class WebglConformance(test_module.Test): test.replace('/', '_').replace('-', '_'). replace('\\', '_').rpartition('.')[0].replace('.', '_'), 'url': 'file://' + test, - 'script_to_evaluate_on_commit': conformance_harness_script, + 'inject_scripts': [ + os.path.join(os.path.dirname(__file__), 'webgl_conformance.js') + ], 'navigate_steps': [ {'action': 'navigate'}, { diff --git a/content/test/gpu/gpu_tests/webgl_robustness.js b/content/test/gpu/gpu_tests/webgl_robustness.js new file mode 100644 index 0000000..111b400 --- /dev/null +++ b/content/test/gpu/gpu_tests/webgl_robustness.js @@ -0,0 +1,40 @@ +// Copyright 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. +(function() { + if (window.parent != window) // Ignore subframes. + return; + + var robustnessTestHarness = {}; + robustnessTestHarness._contextLost = false; + robustnessTestHarness.initialize = function() { + var canvas = document.getElementById('example'); + canvas.addEventListener('webglcontextlost', function() { + robustnessTestHarness._contextLost = true; + }); + }; + robustnessTestHarness.runTestLoop = function() { + // Run the test in a loop until the context is lost. + main(); + if (!robustnessTestHarness._contextLost) + window.requestAnimationFrame(robustnessTestHarness.runTestLoop); + else + robustnessTestHarness.notifyFinished(); + }; + robustnessTestHarness.notifyFinished = function() { + // The test may fail in unpredictable ways depending on when the context is + // lost. We ignore such errors and only require that the browser doesn't + // crash. + webglTestHarness._allTestSucceeded = true; + // Notify test completion after a delay to make sure the browser is able to + // recover from the lost context. + setTimeout(webglTestHarness.notifyFinished, 3000); + }; + + window.confirm = function() { + robustnessTestHarness.initialize(); + robustnessTestHarness.runTestLoop(); + return false; + }; + window.webglRobustnessTestHarness = robustnessTestHarness; +})(); diff --git a/content/test/gpu/gpu_tests/webgl_robustness.py b/content/test/gpu/gpu_tests/webgl_robustness.py index 7e4a302..69b7d1a 100644 --- a/content/test/gpu/gpu_tests/webgl_robustness.py +++ b/content/test/gpu/gpu_tests/webgl_robustness.py @@ -1,49 +1,14 @@ # Copyright 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 + from telemetry import test from telemetry.page import page_set from webgl_conformance import WebglConformanceValidator -from webgl_conformance import conformance_harness_script from webgl_conformance import conformance_path -robustness_harness_script = conformance_harness_script + r""" - var robustnessTestHarness = {}; - robustnessTestHarness._contextLost = false; - robustnessTestHarness.initialize = function() { - var canvas = document.getElementById('example'); - canvas.addEventListener('webglcontextlost', function() { - robustnessTestHarness._contextLost = true; - }); - } - robustnessTestHarness.runTestLoop = function() { - // Run the test in a loop until the context is lost. - main(); - if (!robustnessTestHarness._contextLost) - window.requestAnimationFrame(robustnessTestHarness.runTestLoop); - else - robustnessTestHarness.notifyFinished(); - } - robustnessTestHarness.notifyFinished = function() { - // The test may fail in unpredictable ways depending on when the context is - // lost. We ignore such errors and only require that the browser doesn't - // crash. - webglTestHarness._allTestSucceeded = true; - // Notify test completion after a delay to make sure the browser is able to - // recover from the lost context. - setTimeout(webglTestHarness.notifyFinished, 3000); - } - - window.confirm = function() { - robustnessTestHarness.initialize(); - robustnessTestHarness.runTestLoop(); - return false; - } - window.webglRobustnessTestHarness = robustnessTestHarness; -""" - - class WebglRobustness(test.Test): test = WebglConformanceValidator @@ -55,7 +20,10 @@ class WebglRobustness(test.Test): 'pages': [ { 'url': 'file://extra/lots-of-polys-example.html', - 'script_to_evaluate_on_commit': robustness_harness_script, + 'inject_scripts': [ + os.path.join(os.path.dirname(__file__), 'webgl_conformance.js'), + os.path.join(os.path.dirname(__file__), 'webgl_robustness.js') + ], 'navigate_steps': [ { 'action': 'navigate' }, { 'action': 'wait', 'javascript': 'webglTestHarness._finished' } |