#ifndef _ES31FNEGATIVETESTSHARED_HPP #define _ES31FNEGATIVETESTSHARED_HPP /*------------------------------------------------------------------------- * drawElements Quality Program OpenGL ES 3.1 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 Shared structures for ES 3.1 negative API tests *//*--------------------------------------------------------------------*/ #include "tcuDefs.hpp" #include "glwDefs.hpp" #include "gluCallLogWrapper.hpp" #include "gluShaderUtil.hpp" #include "tes31TestCase.hpp" namespace tcu { class ResultCollector; } // namespace tcu namespace deqp { namespace gles31 { namespace Functional { namespace NegativeTestShared { class ErrorCase : public TestCase { public: ErrorCase(Context &ctx, const char *name, const char *desc); virtual ~ErrorCase(void) { } virtual void expectError(glw::GLenum error0, glw::GLenum error1) = 0; }; class NegativeTestContext : public glu::CallLogWrapper { public: NegativeTestContext(ErrorCase &host, glu::RenderContext &renderCtx, const glu::ContextInfo &ctxInfo, tcu::TestLog &log, tcu::ResultCollector &results, bool enableLog); ~NegativeTestContext(); const tcu::ResultCollector &getResults(void) const; void fail(const std::string &msg); int getInteger(glw::GLenum pname) const; const glu::RenderContext &getRenderContext(void) const { return m_renderCtx; } const glu::ContextInfo &getContextInfo(void) const { return m_ctxInfo; } void beginSection(const std::string &desc); void endSection(void); void expectError(glw::GLenum error); void expectError(glw::GLenum error0, glw::GLenum error1); bool isShaderSupported(glu::ShaderType shaderType); bool isExtensionSupported(std::string extension); protected: ErrorCase &m_host; private: glu::RenderContext &m_renderCtx; const glu::ContextInfo &m_ctxInfo; tcu::ResultCollector &m_results; int m_openSections; }; typedef void (*TestFunc)(NegativeTestContext &ctx); struct FunctionContainer { TestFunc function; const char *name; const char *desc; }; } // namespace NegativeTestShared } // namespace Functional } // namespace gles31 } // namespace deqp #endif // _ES31FNEGATIVETESTSHARED_HPP