blob: d5786180b34ac21a570b87ee495254f18f601c84 [file] [log] [blame]
/*-------------------------------------------------------------------------
* drawElements Quality Program OpenGL ES 3.0 Module
* -------------------------------------------------
*
* 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.
*
*//*!
* \file
* \brief Tests for precision and range of GLSL builtins and types.
*//*--------------------------------------------------------------------*/
'use strict';
goog.provide('functional.gles3.es3fBuiltinPrecisionTests');
goog.require('framework.common.tcuTestCase');
goog.require('framework.opengl.gluShaderProgram');
goog.require('modules.shared.glsBuiltinPrecisionTests');
goog.scope(function() {
var es3fBuiltinPrecisionTests = functional.gles3.es3fBuiltinPrecisionTests;
var glsBuiltinPrecisionTests = modules.shared.glsBuiltinPrecisionTests;
var tcuTestCase = framework.common.tcuTestCase;
var gluShaderProgram = framework.opengl.gluShaderProgram;
/**
* @param {*} context
* @param {number} caseId test case Id
* @return {tcuTestCase.DeqpTest}
*/
es3fBuiltinPrecisionTests.createBuiltinPrecisionTests = function(context, caseId) {
/** @type {tcuTestCase.DeqpTest} */
var group = tcuTestCase.newTest('precision', 'Builtin precision tests');
/** @type {Array<gluShaderProgram.shaderType>} */ var shaderTypes = [];
var es3Cases = glsBuiltinPrecisionTests.createES3BuiltinCases(caseId);
shaderTypes.push(gluShaderProgram.shaderType.VERTEX);
shaderTypes.push(gluShaderProgram.shaderType.FRAGMENT);
glsBuiltinPrecisionTests.addBuiltinPrecisionTests(es3Cases, shaderTypes, group);
return group;
};
/**
* Create and execute the test cases
* @param {WebGL2RenderingContext} context
* @param {number} caseId test case Id
*/
es3fBuiltinPrecisionTests.run = function(context, caseId) {
gl = context;
// Set up root Test
var state = tcuTestCase.runner;
var test = es3fBuiltinPrecisionTests.createBuiltinPrecisionTests(context, caseId);
var testName = test.fullName();
var testDescription = test.getDescription() === undefined ? '' : test.getDescription();
state.testName = testName;
state.setRoot(test);
//Set up name and description of this test series.
setCurrentTestName(testName);
description(testDescription);
try {
//Create test cases
test.init();
//Run test cases
tcuTestCase.runTestCases();
} catch (err) {
bufferedLogToConsole('Exception: ' + err);
testFailedOptions('Failed to es3fAttribLocationTests.run tests', false);
tcuTestCase.runner.terminate();
}
};
});