/*------------------------------------------------------------------------- * drawElements Quality Program OpenGL ES 2.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 String Query tests. *//*--------------------------------------------------------------------*/ #include "es2fStringQueryTests.hpp" #include "es2fApiCase.hpp" #include "gluRenderContext.hpp" #include "glwEnums.hpp" #include "glwFunctions.hpp" #include "deString.h" #include <algorithm> #include <sstream> #include <string> using namespace glw; // GLint and other GL types namespace deqp { namespace gles2 { namespace Functional { StringQueryTests::StringQueryTests (Context& context) : TestCaseGroup (context, "string", "String Query tests") { } StringQueryTests::~StringQueryTests (void) { } void StringQueryTests::init (void) { using tcu::TestLog; ES2F_ADD_API_CASE(renderer, "RENDERER", { const GLubyte* string = glGetString(GL_RENDERER); if (string == NULL) m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid string"); }); ES2F_ADD_API_CASE(vendor, "VENDOR", { const GLubyte* string = glGetString(GL_VENDOR); if (string == NULL) m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid string"); }); ES2F_ADD_API_CASE(version, "VERSION", { const char* string = (const char*)glGetString(GL_VERSION); const char referenceString[] = "OpenGL ES "; if (string == NULL) TCU_FAIL("Got invalid string"); if (!deStringBeginsWith(string, referenceString)) TCU_FAIL("Got invalid string prefix"); { std::string tmpString; char versionDelimiter; int glMajor = 0; int glMinor = 0; std::istringstream versionStream(string); versionStream >> tmpString; // OpenGL versionStream >> tmpString; // ES versionStream >> glMajor; // x versionStream >> std::noskipws; versionStream >> versionDelimiter; // . versionStream >> glMinor; // x if (!versionStream) TCU_FAIL("Got invalid string format"); } }); ES2F_ADD_API_CASE(shading_language_version, "SHADING_LANGUAGE_VERSION", { const char* string = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION); const char referenceString[] = "OpenGL ES GLSL ES "; if (string == NULL) TCU_FAIL("Got invalid string"); if (!deStringBeginsWith(string, referenceString)) TCU_FAIL("Got invalid string prefix"); { std::string tmpString; char versionDelimiter; int glslMajor = 0; int glslMinor = 0; std::istringstream versionStream(string); versionStream >> tmpString; // OpenGL versionStream >> tmpString; // ES versionStream >> tmpString; // GLSL versionStream >> tmpString; // ES versionStream >> glslMajor; // x versionStream >> std::noskipws; versionStream >> versionDelimiter; // . versionStream >> glslMinor; // x if (!versionStream) TCU_FAIL("Got invalid string format"); } }); ES2F_ADD_API_CASE(extensions, "EXTENSIONS", { const char* extensions_cstring = (const char*)glGetString(GL_EXTENSIONS); if (extensions_cstring == NULL) m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid string"); }); } } // Functional } // gles2 } // deqp