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

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

Issue 1887713006: Added tests to check that WebGL extensions are available. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sigh... Trying to fix the expectations again. Created 4 years, 8 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/webgl_conformance.py
diff --git a/content/test/gpu/gpu_tests/webgl_conformance.py b/content/test/gpu/gpu_tests/webgl_conformance.py
index 5fb6884b09ca2cdf79e640d5f30b15c948239cef..b2ec479ef1f7c840bb05e7b6c2f9609d583af44c 100644
--- a/content/test/gpu/gpu_tests/webgl_conformance.py
+++ b/content/test/gpu/gpu_tests/webgl_conformance.py
@@ -12,7 +12,9 @@ from telemetry.internal.browser import browser_finder
from telemetry.page import page_test
from telemetry.story.story_set import StorySet
-
+extensions_path = os.path.join(
+ path_util.GetChromiumSrcDir(),
+ 'content', 'test', 'data', 'gpu')
conformance_path = os.path.join(
path_util.GetChromiumSrcDir(),
'third_party', 'webgl', 'src', 'sdk', 'tests')
@@ -126,6 +128,48 @@ class Webgl2ConformanceValidator(WebglConformanceValidator):
'--disable-accelerated-video-decode'
])
+class WebglExtensionPage(gpu_test_base.PageBase):
+ def __init__(self, story_set, extension, webgl_version, expectations):
+ super(WebglExtensionPage, self).__init__(
+ url='file://' + extensions_path + '/webgl_extension_test.html',
+ page_set=story_set, base_dir=extensions_path,
+ shared_page_state_class=gpu_test_base.DesktopGpuSharedPageState,
+ name=('WebglExtension.%s' % extension),
+ expectations=expectations)
+ self.extension = extension
+ self.context_type = "webgl2" if webgl_version == 2 else "webgl"
+ self.script_to_evaluate_on_commit = conformance_harness_script
+
+ def RunNavigateSteps(self, action_runner):
+ super(WebglExtensionPage, self).RunNavigateSteps(action_runner)
+ action_runner.EvaluateJavaScript('checkExtension("%s", "%s")' %
+ (self.extension, self.context_type))
+ action_runner.WaitForJavaScriptCondition(
+ 'webglTestHarness._finished', timeout_in_seconds=3)
+
+class WebglExtensionListPage(gpu_test_base.PageBase):
+ def __init__(self, story_set, extension_list, webgl_version, expectations):
+ super(WebglExtensionListPage, self).__init__(
+ url='file://' + extensions_path + '/webgl_extension_test.html',
+ page_set=story_set, base_dir=extensions_path,
+ shared_page_state_class=gpu_test_base.DesktopGpuSharedPageState,
+ name=('WebglExtension.TestCoverage'),
+ expectations=expectations)
+ self.extension_list = extension_list
+ self.context_type = "webgl2" if webgl_version == 2 else "webgl"
+ self.script_to_evaluate_on_commit = conformance_harness_script
+
+ def RunNavigateSteps(self, action_runner):
+ super(WebglExtensionListPage, self).RunNavigateSteps(action_runner)
+ extension_list_string = "["
+ for extension in self.extension_list:
+ extension_list_string = extension_list_string + extension + ", "
+ extension_list_string = extension_list_string + "]"
+ action_runner.EvaluateJavaScript('checkSupportedExtensions("%s", "%s")' %
+ (extension_list_string, self.context_type))
+ action_runner.WaitForJavaScriptCondition(
+ 'webglTestHarness._finished', timeout_in_seconds=3)
+
class WebglConformancePage(gpu_test_base.PageBase):
def __init__(self, story_set, test, expectations):
super(WebglConformancePage, self).__init__(
@@ -179,6 +223,14 @@ class WebglConformance(gpu_test_base.TestBase):
ps = StorySet(serving_dirs=[''], base_dir=conformance_path)
expectations = self.GetExpectations()
+
+ extension_tests = self.GetExtensionList()
+ ps.AddStory(WebglExtensionListPage(ps, extension_tests, self._webgl_version,
+ expectations))
+ for extension in extension_tests:
+ ps.AddStory(WebglExtensionPage(ps, extension, self._webgl_version,
+ expectations))
+
for test in tests:
ps.AddStory(WebglConformancePage(ps, test, expectations))
@@ -193,6 +245,50 @@ class WebglConformance(gpu_test_base.TestBase):
return webgl2_conformance_expectations.WebGL2ConformanceExpectations(
conformance_path)
+ def GetExtensionList(self):
+ if self._webgl_version == 1:
+ return [
+ 'ANGLE_instanced_arrays',
+ 'EXT_blend_minmax',
+ 'EXT_disjoint_timer_query',
+ 'EXT_frag_depth',
+ 'EXT_shader_texture_lod',
+ 'EXT_sRGB',
+ 'EXT_texture_filter_anisotropic',
+ 'OES_element_index_uint',
+ 'OES_standard_derivatives',
+ 'OES_texture_float',
+ 'OES_texture_float_linear',
+ 'OES_texture_half_float',
+ 'OES_texture_half_float_linear',
+ 'OES_vertex_array_object',
+ 'WEBGL_compressed_texture_astc',
+ 'WEBGL_compressed_texture_atc',
+ 'WEBGL_compressed_texture_etc1',
+ 'WEBGL_compressed_texture_pvrtc',
+ 'WEBGL_compressed_texture_s3tc',
+ 'WEBGL_debug_renderer_info',
+ 'WEBGL_debug_shaders',
+ 'WEBGL_depth_texture',
+ 'WEBGL_draw_buffers',
+ 'WEBGL_lose_context',
+ ]
+ else:
+ return [
+ 'EXT_color_buffer_float',
+ 'EXT_disjoint_timer_query',
+ 'EXT_texture_filter_anisotropic',
+ 'OES_texture_float_linear',
+ 'WEBGL_compressed_texture_astc',
+ 'WEBGL_compressed_texture_atc',
+ 'WEBGL_compressed_texture_etc1',
+ 'WEBGL_compressed_texture_pvrtc',
+ 'WEBGL_compressed_texture_s3tc',
+ 'WEBGL_debug_renderer_info',
+ 'WEBGL_debug_shaders',
+ 'WEBGL_lose_context',
+ ]
+
@staticmethod
def _ParseTests(path, version, webgl2_only, folder_min_version):
test_paths = []

Powered by Google App Engine
This is Rietveld 408576698