summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js')
-rw-r--r--dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js111
1 files changed, 111 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js b/dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js
new file mode 100644
index 0000000000..8e90ff576b
--- /dev/null
+++ b/dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/es3fStringQueryTests.js
@@ -0,0 +1,111 @@
+/*-------------------------------------------------------------------------
+ * drawElements Quality Program OpenGL ES Utilities
+ * ------------------------------------------------
+ *
+ * Copyright 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+'use strict';
+goog.provide('functional.gles3.es3fStringQueryTests');
+goog.require('framework.common.tcuTestCase');
+goog.require('functional.gles3.es3fApiCase');
+
+goog.scope(function() {
+ var es3fStringQueryTests = functional.gles3.es3fStringQueryTests;
+ var tcuTestCase = framework.common.tcuTestCase;
+ var es3fApiCase = functional.gles3.es3fApiCase;
+
+ /**
+ * @constructor
+ * @extends {tcuTestCase.DeqpTest}
+ */
+ es3fStringQueryTests.StringQueryTests = function() {
+ tcuTestCase.DeqpTest.call(this, 'string', 'String Query tests');
+ };
+
+ es3fStringQueryTests.StringQueryTests.prototype = Object.create(tcuTestCase.DeqpTest.prototype);
+ es3fStringQueryTests.StringQueryTests.prototype.constructor = es3fStringQueryTests.StringQueryTests;
+
+ es3fStringQueryTests.StringQueryTests.prototype.init = function() {
+ this.addChild(new es3fApiCase.ApiCaseCallback('renderer', 'RENDERER', gl, function() {
+ var string = /** @type {string} */ (gl.getParameter(gl.RENDERER));
+ this.check(string !== null,
+ 'Got invalid string: ' + string);
+ }));
+
+ this.addChild(new es3fApiCase.ApiCaseCallback('vendor', 'VENDOR', gl, function() {
+ var string = /** @type {string} */ (gl.getParameter(gl.VENDOR));
+ this.check(string !== null,
+ 'Got invalid string: ' + string);
+ }));
+
+ this.addChild(new es3fApiCase.ApiCaseCallback('version', 'VERSION', gl, function() {
+ var string = /** @type {string} */ (gl.getParameter(gl.VERSION));
+ /** @type {string} */ var referenceString = 'WebGL 2.0';
+
+ this.check(string !== null && string.indexOf(referenceString) === 0,
+ 'Got invalid string prefix: ' + string + ' expected: ' + referenceString);
+ }));
+
+ this.addChild(new es3fApiCase.ApiCaseCallback('shading_language_version', 'SHADING_LANGUAGE_VERSION', gl, function() {
+ var string = /** @type {string} */ (gl.getParameter(gl.SHADING_LANGUAGE_VERSION));
+ /** @type {string} */ var referenceString = 'WebGL GLSL ES 3.00';
+
+ this.check(string !== null, 'Got invalid string');
+ this.check(string.indexOf(referenceString) === 0, 'Got invalid string prefix');
+ }));
+
+ this.addChild(new es3fApiCase.ApiCaseCallback('extensions', 'EXTENSIONS', gl, function() {
+ /** @type {Array<string>} */ var extensions = gl.getSupportedExtensions();
+ this.check(extensions !== null, 'Got invalid string');
+
+ // [dag] check that all extensions from gl.getSupportedExtensions() are found using gl.getExtension()
+ for (var i in extensions) {
+ /** @type {Object} */ var extension = gl.getExtension(extensions[i]);
+ this.check(extension !== null, 'Advertised extension ' + extensions[i] + ' not found');
+ }
+
+ // [dag] check that gl.getExtension() returns null for items not in gl.getSupportedExtensions()
+ this.check(gl.getExtension('Random_String') === null, 'Extension query methods are not consistent.');
+ }));
+
+ };
+
+ /**
+ * Run test
+ * @param {WebGL2RenderingContext} context
+ */
+ es3fStringQueryTests.run = function(context) {
+ gl = context;
+ //Set up Test Root parameters
+ var state = tcuTestCase.runner;
+ state.setRoot(new es3fStringQueryTests.StringQueryTests());
+
+ //Set up name and description of this test series.
+ setCurrentTestName(state.testCases.fullName());
+ description(state.testCases.getDescription());
+
+ try {
+ //Run test cases
+ tcuTestCase.runTestCases();
+ }
+ catch (err) {
+ testFailedOptions('Failed to es3fStringQueryTests.run tests', false);
+ tcuTestCase.runner.terminate();
+ }
+ };
+
+});