Home | History | Annotate | Download | only in functional
      1 /*-------------------------------------------------------------------------
      2  * drawElements Quality Program OpenGL ES 3.1 Module
      3  * -------------------------------------------------
      4  *
      5  * Copyright 2014 The Android Open Source Project
      6  *
      7  * Licensed under the Apache License, Version 2.0 (the "License");
      8  * you may not use this file except in compliance with the License.
      9  * You may obtain a copy of the License at
     10  *
     11  *      http://www.apache.org/licenses/LICENSE-2.0
     12  *
     13  * Unless required by applicable law or agreed to in writing, software
     14  * distributed under the License is distributed on an "AS IS" BASIS,
     15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16  * See the License for the specific language governing permissions and
     17  * limitations under the License.
     18  *
     19  *//*!
     20  * \file
     21  * \brief Shared structures for ES 3.1 negative API tests
     22  *//*--------------------------------------------------------------------*/
     23 
     24 #include "es31fNegativeTestShared.hpp"
     25 
     26 #include "gluRenderContext.hpp"
     27 #include "glwFunctions.hpp"
     28 
     29 namespace deqp
     30 {
     31 namespace gles31
     32 {
     33 namespace Functional
     34 {
     35 namespace NegativeTestShared
     36 {
     37 
     38 using glw::GLenum;
     39 using tcu::TestLog;
     40 using std::string;
     41 
     42 ErrorCase::ErrorCase (Context& ctx, const char* name, const char* desc)
     43 	: TestCase(ctx, name, desc)
     44 {
     45 }
     46 
     47 NegativeTestContext::NegativeTestContext (ErrorCase&				host,
     48 										  glu::RenderContext&		renderCtx,
     49 										  const glu::ContextInfo&	ctxInfo,
     50 										  tcu::TestLog&				log,
     51 										  tcu::ResultCollector&		results,
     52 										  bool						enableLogging_)
     53 	: glu::CallLogWrapper	(renderCtx.getFunctions(), log)
     54 	, m_renderCtx			(renderCtx)
     55 	, m_ctxInfo				(ctxInfo)
     56 	, m_host				(host)
     57 	, m_results				(results)
     58 	, m_openSections		(0)
     59 {
     60 	enableLogging(enableLogging_);
     61 }
     62 
     63 NegativeTestContext::~NegativeTestContext ()
     64 {
     65 	while (m_openSections--)
     66 		getLog() << TestLog::EndSection;
     67 }
     68 
     69 void NegativeTestContext::fail (const string& msg)
     70 {
     71 	m_results.addResult(QP_TEST_RESULT_FAIL, msg);
     72 }
     73 
     74 int NegativeTestContext::getInteger (GLenum pname) const
     75 {
     76 	int retval = 0;
     77 	m_renderCtx.getFunctions().getIntegerv(pname, &retval);
     78 	return retval;
     79 }
     80 
     81 void NegativeTestContext::beginSection (const string& desc)
     82 {
     83 	if (isLoggingEnabled())
     84 	{
     85 		getLog() << TestLog::Section("callstream", desc);
     86 		m_openSections++;
     87 	}
     88 }
     89 
     90 void NegativeTestContext::endSection (void)
     91 {
     92 	if (isLoggingEnabled())
     93 	{
     94 		DE_ASSERT (m_openSections > 0);
     95 		getLog() << TestLog::EndSection;
     96 		m_openSections--;
     97 	}
     98 }
     99 
    100 void NegativeTestContext::expectMessage (GLenum source, GLenum type)
    101 {
    102 	m_host.expectMessage(source, type);
    103 }
    104 
    105 void NegativeTestContext::expectError (GLenum error)
    106 {
    107 	m_host.expectError(error, error);
    108 }
    109 
    110 void NegativeTestContext::expectError (GLenum error0, GLenum error1)
    111 {
    112 	m_host.expectError(error0, error1);
    113 }
    114 
    115 } // NegativeTestShared
    116 } // Functional
    117 } // gles31
    118 } // deqp
    119