xref: /aosp_15_r20/external/deqp/modules/gles2/functional/es2fBufferObjectQueryTests.cpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1*35238bceSAndroid Build Coastguard Worker /*-------------------------------------------------------------------------
2*35238bceSAndroid Build Coastguard Worker  * drawElements Quality Program OpenGL ES 2.0 Module
3*35238bceSAndroid Build Coastguard Worker  * -------------------------------------------------
4*35238bceSAndroid Build Coastguard Worker  *
5*35238bceSAndroid Build Coastguard Worker  * Copyright 2014 The Android Open Source Project
6*35238bceSAndroid Build Coastguard Worker  *
7*35238bceSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
8*35238bceSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
9*35238bceSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
10*35238bceSAndroid Build Coastguard Worker  *
11*35238bceSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
12*35238bceSAndroid Build Coastguard Worker  *
13*35238bceSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
14*35238bceSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
15*35238bceSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16*35238bceSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
17*35238bceSAndroid Build Coastguard Worker  * limitations under the License.
18*35238bceSAndroid Build Coastguard Worker  *
19*35238bceSAndroid Build Coastguard Worker  *//*!
20*35238bceSAndroid Build Coastguard Worker  * \file
21*35238bceSAndroid Build Coastguard Worker  * \brief Buffer Object Query tests.
22*35238bceSAndroid Build Coastguard Worker  *//*--------------------------------------------------------------------*/
23*35238bceSAndroid Build Coastguard Worker 
24*35238bceSAndroid Build Coastguard Worker #include "es2fBufferObjectQueryTests.hpp"
25*35238bceSAndroid Build Coastguard Worker #include "glsStateQueryUtil.hpp"
26*35238bceSAndroid Build Coastguard Worker #include "es2fApiCase.hpp"
27*35238bceSAndroid Build Coastguard Worker #include "gluRenderContext.hpp"
28*35238bceSAndroid Build Coastguard Worker #include "glwEnums.hpp"
29*35238bceSAndroid Build Coastguard Worker #include "glwFunctions.hpp"
30*35238bceSAndroid Build Coastguard Worker #include "deRandom.hpp"
31*35238bceSAndroid Build Coastguard Worker #include "deMath.h"
32*35238bceSAndroid Build Coastguard Worker 
33*35238bceSAndroid Build Coastguard Worker #include <limits>
34*35238bceSAndroid Build Coastguard Worker 
35*35238bceSAndroid Build Coastguard Worker using namespace glw; // GLint and other GL types
36*35238bceSAndroid Build Coastguard Worker using deqp::gls::StateQueryUtil::StateQueryMemoryWriteGuard;
37*35238bceSAndroid Build Coastguard Worker 
38*35238bceSAndroid Build Coastguard Worker namespace deqp
39*35238bceSAndroid Build Coastguard Worker {
40*35238bceSAndroid Build Coastguard Worker namespace gles2
41*35238bceSAndroid Build Coastguard Worker {
42*35238bceSAndroid Build Coastguard Worker namespace Functional
43*35238bceSAndroid Build Coastguard Worker {
44*35238bceSAndroid Build Coastguard Worker namespace BufferParamVerifiers
45*35238bceSAndroid Build Coastguard Worker {
46*35238bceSAndroid Build Coastguard Worker 
checkIntEquals(tcu::TestContext & testCtx,GLint got,GLint expected)47*35238bceSAndroid Build Coastguard Worker void checkIntEquals(tcu::TestContext &testCtx, GLint got, GLint expected)
48*35238bceSAndroid Build Coastguard Worker {
49*35238bceSAndroid Build Coastguard Worker     using tcu::TestLog;
50*35238bceSAndroid Build Coastguard Worker 
51*35238bceSAndroid Build Coastguard Worker     if (got != expected)
52*35238bceSAndroid Build Coastguard Worker     {
53*35238bceSAndroid Build Coastguard Worker         testCtx.getLog() << TestLog::Message << "// ERROR: Expected " << expected << "; got " << got
54*35238bceSAndroid Build Coastguard Worker                          << TestLog::EndMessage;
55*35238bceSAndroid Build Coastguard Worker         if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
56*35238bceSAndroid Build Coastguard Worker             testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid value");
57*35238bceSAndroid Build Coastguard Worker     }
58*35238bceSAndroid Build Coastguard Worker }
59*35238bceSAndroid Build Coastguard Worker 
checkPointerEquals(tcu::TestContext & testCtx,const void * got,const void * expected)60*35238bceSAndroid Build Coastguard Worker void checkPointerEquals(tcu::TestContext &testCtx, const void *got, const void *expected)
61*35238bceSAndroid Build Coastguard Worker {
62*35238bceSAndroid Build Coastguard Worker     using tcu::TestLog;
63*35238bceSAndroid Build Coastguard Worker 
64*35238bceSAndroid Build Coastguard Worker     if (got != expected)
65*35238bceSAndroid Build Coastguard Worker     {
66*35238bceSAndroid Build Coastguard Worker         testCtx.getLog() << TestLog::Message << "// ERROR: Expected " << expected << "; got " << got
67*35238bceSAndroid Build Coastguard Worker                          << TestLog::EndMessage;
68*35238bceSAndroid Build Coastguard Worker         if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
69*35238bceSAndroid Build Coastguard Worker             testCtx.setTestResult(QP_TEST_RESULT_FAIL, "got invalid value");
70*35238bceSAndroid Build Coastguard Worker     }
71*35238bceSAndroid Build Coastguard Worker }
72*35238bceSAndroid Build Coastguard Worker 
73*35238bceSAndroid Build Coastguard Worker class BufferParamVerifier : protected glu::CallLogWrapper
74*35238bceSAndroid Build Coastguard Worker {
75*35238bceSAndroid Build Coastguard Worker public:
76*35238bceSAndroid Build Coastguard Worker     BufferParamVerifier(const glw::Functions &gl, tcu::TestLog &log, const char *testNamePostfix);
77*35238bceSAndroid Build Coastguard Worker     virtual ~BufferParamVerifier(); // make GCC happy
78*35238bceSAndroid Build Coastguard Worker 
79*35238bceSAndroid Build Coastguard Worker     const char *getTestNamePostfix(void) const;
80*35238bceSAndroid Build Coastguard Worker 
81*35238bceSAndroid Build Coastguard Worker     virtual void verifyInteger(tcu::TestContext &testCtx, GLenum target, GLenum name, GLint reference) = DE_NULL;
82*35238bceSAndroid Build Coastguard Worker 
83*35238bceSAndroid Build Coastguard Worker private:
84*35238bceSAndroid Build Coastguard Worker     const char *const m_testNamePostfix;
85*35238bceSAndroid Build Coastguard Worker };
86*35238bceSAndroid Build Coastguard Worker 
BufferParamVerifier(const glw::Functions & gl,tcu::TestLog & log,const char * testNamePostfix)87*35238bceSAndroid Build Coastguard Worker BufferParamVerifier::BufferParamVerifier(const glw::Functions &gl, tcu::TestLog &log, const char *testNamePostfix)
88*35238bceSAndroid Build Coastguard Worker     : glu::CallLogWrapper(gl, log)
89*35238bceSAndroid Build Coastguard Worker     , m_testNamePostfix(testNamePostfix)
90*35238bceSAndroid Build Coastguard Worker {
91*35238bceSAndroid Build Coastguard Worker     enableLogging(true);
92*35238bceSAndroid Build Coastguard Worker }
93*35238bceSAndroid Build Coastguard Worker 
~BufferParamVerifier()94*35238bceSAndroid Build Coastguard Worker BufferParamVerifier::~BufferParamVerifier()
95*35238bceSAndroid Build Coastguard Worker {
96*35238bceSAndroid Build Coastguard Worker }
97*35238bceSAndroid Build Coastguard Worker 
getTestNamePostfix(void) const98*35238bceSAndroid Build Coastguard Worker const char *BufferParamVerifier::getTestNamePostfix(void) const
99*35238bceSAndroid Build Coastguard Worker {
100*35238bceSAndroid Build Coastguard Worker     return m_testNamePostfix;
101*35238bceSAndroid Build Coastguard Worker }
102*35238bceSAndroid Build Coastguard Worker 
103*35238bceSAndroid Build Coastguard Worker class GetBufferParameterIVerifier : public BufferParamVerifier
104*35238bceSAndroid Build Coastguard Worker {
105*35238bceSAndroid Build Coastguard Worker public:
106*35238bceSAndroid Build Coastguard Worker     GetBufferParameterIVerifier(const glw::Functions &gl, tcu::TestLog &log);
107*35238bceSAndroid Build Coastguard Worker 
108*35238bceSAndroid Build Coastguard Worker     void verifyInteger(tcu::TestContext &testCtx, GLenum target, GLenum name, GLint reference);
109*35238bceSAndroid Build Coastguard Worker };
110*35238bceSAndroid Build Coastguard Worker 
GetBufferParameterIVerifier(const glw::Functions & gl,tcu::TestLog & log)111*35238bceSAndroid Build Coastguard Worker GetBufferParameterIVerifier::GetBufferParameterIVerifier(const glw::Functions &gl, tcu::TestLog &log)
112*35238bceSAndroid Build Coastguard Worker     : BufferParamVerifier(gl, log, "_getbufferparameteri")
113*35238bceSAndroid Build Coastguard Worker {
114*35238bceSAndroid Build Coastguard Worker }
115*35238bceSAndroid Build Coastguard Worker 
verifyInteger(tcu::TestContext & testCtx,GLenum target,GLenum name,GLint reference)116*35238bceSAndroid Build Coastguard Worker void GetBufferParameterIVerifier::verifyInteger(tcu::TestContext &testCtx, GLenum target, GLenum name, GLint reference)
117*35238bceSAndroid Build Coastguard Worker {
118*35238bceSAndroid Build Coastguard Worker     using tcu::TestLog;
119*35238bceSAndroid Build Coastguard Worker 
120*35238bceSAndroid Build Coastguard Worker     StateQueryMemoryWriteGuard<GLint> state;
121*35238bceSAndroid Build Coastguard Worker     glGetBufferParameteriv(target, name, &state);
122*35238bceSAndroid Build Coastguard Worker 
123*35238bceSAndroid Build Coastguard Worker     if (!state.verifyValidity(testCtx))
124*35238bceSAndroid Build Coastguard Worker         return;
125*35238bceSAndroid Build Coastguard Worker 
126*35238bceSAndroid Build Coastguard Worker     if (state != reference)
127*35238bceSAndroid Build Coastguard Worker     {
128*35238bceSAndroid Build Coastguard Worker         testCtx.getLog() << TestLog::Message << "// ERROR: expected " << reference << "; got " << state
129*35238bceSAndroid Build Coastguard Worker                          << TestLog::EndMessage;
130*35238bceSAndroid Build Coastguard Worker 
131*35238bceSAndroid Build Coastguard Worker         if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
132*35238bceSAndroid Build Coastguard Worker             testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got invalid value");
133*35238bceSAndroid Build Coastguard Worker     }
134*35238bceSAndroid Build Coastguard Worker }
135*35238bceSAndroid Build Coastguard Worker 
136*35238bceSAndroid Build Coastguard Worker } // namespace BufferParamVerifiers
137*35238bceSAndroid Build Coastguard Worker 
138*35238bceSAndroid Build Coastguard Worker namespace
139*35238bceSAndroid Build Coastguard Worker {
140*35238bceSAndroid Build Coastguard Worker 
141*35238bceSAndroid Build Coastguard Worker using namespace BufferParamVerifiers;
142*35238bceSAndroid Build Coastguard Worker 
143*35238bceSAndroid Build Coastguard Worker // Tests
144*35238bceSAndroid Build Coastguard Worker 
145*35238bceSAndroid Build Coastguard Worker class BufferCase : public ApiCase
146*35238bceSAndroid Build Coastguard Worker {
147*35238bceSAndroid Build Coastguard Worker public:
BufferCase(Context & context,BufferParamVerifier * verifier,const char * name,const char * description)148*35238bceSAndroid Build Coastguard Worker     BufferCase(Context &context, BufferParamVerifier *verifier, const char *name, const char *description)
149*35238bceSAndroid Build Coastguard Worker         : ApiCase(context, name, description)
150*35238bceSAndroid Build Coastguard Worker         , m_bufferTarget(0)
151*35238bceSAndroid Build Coastguard Worker         , m_verifier(verifier)
152*35238bceSAndroid Build Coastguard Worker     {
153*35238bceSAndroid Build Coastguard Worker     }
154*35238bceSAndroid Build Coastguard Worker 
155*35238bceSAndroid Build Coastguard Worker     virtual void testBuffer(void) = DE_NULL;
156*35238bceSAndroid Build Coastguard Worker 
test(void)157*35238bceSAndroid Build Coastguard Worker     void test(void)
158*35238bceSAndroid Build Coastguard Worker     {
159*35238bceSAndroid Build Coastguard Worker         const GLenum bufferTargets[] = {GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER};
160*35238bceSAndroid Build Coastguard Worker         const int targets            = DE_LENGTH_OF_ARRAY(bufferTargets);
161*35238bceSAndroid Build Coastguard Worker 
162*35238bceSAndroid Build Coastguard Worker         for (int ndx = 0; ndx < targets; ++ndx)
163*35238bceSAndroid Build Coastguard Worker         {
164*35238bceSAndroid Build Coastguard Worker             m_bufferTarget = bufferTargets[ndx];
165*35238bceSAndroid Build Coastguard Worker 
166*35238bceSAndroid Build Coastguard Worker             GLuint bufferId = 0;
167*35238bceSAndroid Build Coastguard Worker             glGenBuffers(1, &bufferId);
168*35238bceSAndroid Build Coastguard Worker             glBindBuffer(m_bufferTarget, bufferId);
169*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
170*35238bceSAndroid Build Coastguard Worker 
171*35238bceSAndroid Build Coastguard Worker             testBuffer();
172*35238bceSAndroid Build Coastguard Worker 
173*35238bceSAndroid Build Coastguard Worker             glDeleteBuffers(1, &bufferId);
174*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
175*35238bceSAndroid Build Coastguard Worker         }
176*35238bceSAndroid Build Coastguard Worker     }
177*35238bceSAndroid Build Coastguard Worker 
178*35238bceSAndroid Build Coastguard Worker protected:
179*35238bceSAndroid Build Coastguard Worker     GLenum m_bufferTarget;
180*35238bceSAndroid Build Coastguard Worker     BufferParamVerifier *m_verifier;
181*35238bceSAndroid Build Coastguard Worker };
182*35238bceSAndroid Build Coastguard Worker 
183*35238bceSAndroid Build Coastguard Worker class BufferSizeCase : public BufferCase
184*35238bceSAndroid Build Coastguard Worker {
185*35238bceSAndroid Build Coastguard Worker public:
BufferSizeCase(Context & context,BufferParamVerifier * verifier,const char * name,const char * description)186*35238bceSAndroid Build Coastguard Worker     BufferSizeCase(Context &context, BufferParamVerifier *verifier, const char *name, const char *description)
187*35238bceSAndroid Build Coastguard Worker         : BufferCase(context, verifier, name, description)
188*35238bceSAndroid Build Coastguard Worker     {
189*35238bceSAndroid Build Coastguard Worker     }
190*35238bceSAndroid Build Coastguard Worker 
testBuffer(void)191*35238bceSAndroid Build Coastguard Worker     void testBuffer(void)
192*35238bceSAndroid Build Coastguard Worker     {
193*35238bceSAndroid Build Coastguard Worker         const int numIteration = 16;
194*35238bceSAndroid Build Coastguard Worker         de::Random rnd(0xabcdef);
195*35238bceSAndroid Build Coastguard Worker 
196*35238bceSAndroid Build Coastguard Worker         m_verifier->verifyInteger(m_testCtx, m_bufferTarget, GL_BUFFER_SIZE, 0);
197*35238bceSAndroid Build Coastguard Worker 
198*35238bceSAndroid Build Coastguard Worker         for (int i = 0; i < numIteration; ++i)
199*35238bceSAndroid Build Coastguard Worker         {
200*35238bceSAndroid Build Coastguard Worker             const GLint len = rnd.getInt(0, 1024);
201*35238bceSAndroid Build Coastguard Worker             glBufferData(m_bufferTarget, len, DE_NULL, GL_STREAM_DRAW);
202*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
203*35238bceSAndroid Build Coastguard Worker 
204*35238bceSAndroid Build Coastguard Worker             m_verifier->verifyInteger(m_testCtx, m_bufferTarget, GL_BUFFER_SIZE, len);
205*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
206*35238bceSAndroid Build Coastguard Worker         }
207*35238bceSAndroid Build Coastguard Worker     }
208*35238bceSAndroid Build Coastguard Worker };
209*35238bceSAndroid Build Coastguard Worker 
210*35238bceSAndroid Build Coastguard Worker class BufferUsageCase : public BufferCase
211*35238bceSAndroid Build Coastguard Worker {
212*35238bceSAndroid Build Coastguard Worker public:
BufferUsageCase(Context & context,BufferParamVerifier * verifier,const char * name,const char * description)213*35238bceSAndroid Build Coastguard Worker     BufferUsageCase(Context &context, BufferParamVerifier *verifier, const char *name, const char *description)
214*35238bceSAndroid Build Coastguard Worker         : BufferCase(context, verifier, name, description)
215*35238bceSAndroid Build Coastguard Worker     {
216*35238bceSAndroid Build Coastguard Worker     }
217*35238bceSAndroid Build Coastguard Worker 
testBuffer(void)218*35238bceSAndroid Build Coastguard Worker     void testBuffer(void)
219*35238bceSAndroid Build Coastguard Worker     {
220*35238bceSAndroid Build Coastguard Worker         const GLenum usages[] = {GL_STATIC_DRAW, GL_DYNAMIC_DRAW, GL_STREAM_DRAW};
221*35238bceSAndroid Build Coastguard Worker 
222*35238bceSAndroid Build Coastguard Worker         m_verifier->verifyInteger(m_testCtx, m_bufferTarget, GL_BUFFER_USAGE, GL_STATIC_DRAW);
223*35238bceSAndroid Build Coastguard Worker 
224*35238bceSAndroid Build Coastguard Worker         for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(usages); ++ndx)
225*35238bceSAndroid Build Coastguard Worker         {
226*35238bceSAndroid Build Coastguard Worker             glBufferData(m_bufferTarget, 16, DE_NULL, usages[ndx]);
227*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
228*35238bceSAndroid Build Coastguard Worker 
229*35238bceSAndroid Build Coastguard Worker             m_verifier->verifyInteger(m_testCtx, m_bufferTarget, GL_BUFFER_USAGE, usages[ndx]);
230*35238bceSAndroid Build Coastguard Worker             expectError(GL_NO_ERROR);
231*35238bceSAndroid Build Coastguard Worker         }
232*35238bceSAndroid Build Coastguard Worker     }
233*35238bceSAndroid Build Coastguard Worker };
234*35238bceSAndroid Build Coastguard Worker 
235*35238bceSAndroid Build Coastguard Worker } // namespace
236*35238bceSAndroid Build Coastguard Worker 
237*35238bceSAndroid Build Coastguard Worker #define FOR_EACH_VERIFIER(VERIFIERS, CODE_BLOCK)                                             \
238*35238bceSAndroid Build Coastguard Worker     for (int _verifierNdx = 0; _verifierNdx < DE_LENGTH_OF_ARRAY(VERIFIERS); _verifierNdx++) \
239*35238bceSAndroid Build Coastguard Worker     {                                                                                        \
240*35238bceSAndroid Build Coastguard Worker         BufferParamVerifier *verifier = (VERIFIERS)[_verifierNdx];                           \
241*35238bceSAndroid Build Coastguard Worker         CODE_BLOCK;                                                                          \
242*35238bceSAndroid Build Coastguard Worker     }
243*35238bceSAndroid Build Coastguard Worker 
BufferObjectQueryTests(Context & context)244*35238bceSAndroid Build Coastguard Worker BufferObjectQueryTests::BufferObjectQueryTests(Context &context)
245*35238bceSAndroid Build Coastguard Worker     : TestCaseGroup(context, "buffer_object", "Buffer Object Query tests")
246*35238bceSAndroid Build Coastguard Worker     , m_verifierInt(DE_NULL)
247*35238bceSAndroid Build Coastguard Worker {
248*35238bceSAndroid Build Coastguard Worker }
249*35238bceSAndroid Build Coastguard Worker 
~BufferObjectQueryTests(void)250*35238bceSAndroid Build Coastguard Worker BufferObjectQueryTests::~BufferObjectQueryTests(void)
251*35238bceSAndroid Build Coastguard Worker {
252*35238bceSAndroid Build Coastguard Worker     deinit();
253*35238bceSAndroid Build Coastguard Worker }
254*35238bceSAndroid Build Coastguard Worker 
init(void)255*35238bceSAndroid Build Coastguard Worker void BufferObjectQueryTests::init(void)
256*35238bceSAndroid Build Coastguard Worker {
257*35238bceSAndroid Build Coastguard Worker     using namespace BufferParamVerifiers;
258*35238bceSAndroid Build Coastguard Worker 
259*35238bceSAndroid Build Coastguard Worker     DE_ASSERT(m_verifierInt == DE_NULL);
260*35238bceSAndroid Build Coastguard Worker 
261*35238bceSAndroid Build Coastguard Worker     m_verifierInt                    = new GetBufferParameterIVerifier(m_context.getRenderContext().getFunctions(),
262*35238bceSAndroid Build Coastguard Worker                                                                        m_context.getTestContext().getLog());
263*35238bceSAndroid Build Coastguard Worker     BufferParamVerifier *verifiers[] = {m_verifierInt};
264*35238bceSAndroid Build Coastguard Worker 
265*35238bceSAndroid Build Coastguard Worker     FOR_EACH_VERIFIER(verifiers,
266*35238bceSAndroid Build Coastguard Worker                       addChild(new BufferSizeCase(m_context, verifier,
267*35238bceSAndroid Build Coastguard Worker                                                   (std::string("buffer_size") + verifier->getTestNamePostfix()).c_str(),
268*35238bceSAndroid Build Coastguard Worker                                                   "BUFFER_SIZE")))
269*35238bceSAndroid Build Coastguard Worker     FOR_EACH_VERIFIER(
270*35238bceSAndroid Build Coastguard Worker         verifiers, addChild(new BufferUsageCase(m_context, verifier,
271*35238bceSAndroid Build Coastguard Worker                                                 (std::string("buffer_usage") + verifier->getTestNamePostfix()).c_str(),
272*35238bceSAndroid Build Coastguard Worker                                                 "BUFFER_USAGE")))
273*35238bceSAndroid Build Coastguard Worker }
274*35238bceSAndroid Build Coastguard Worker 
deinit(void)275*35238bceSAndroid Build Coastguard Worker void BufferObjectQueryTests::deinit(void)
276*35238bceSAndroid Build Coastguard Worker {
277*35238bceSAndroid Build Coastguard Worker     if (m_verifierInt)
278*35238bceSAndroid Build Coastguard Worker     {
279*35238bceSAndroid Build Coastguard Worker         delete m_verifierInt;
280*35238bceSAndroid Build Coastguard Worker         m_verifierInt = NULL;
281*35238bceSAndroid Build Coastguard Worker     }
282*35238bceSAndroid Build Coastguard Worker 
283*35238bceSAndroid Build Coastguard Worker     this->TestCaseGroup::deinit();
284*35238bceSAndroid Build Coastguard Worker }
285*35238bceSAndroid Build Coastguard Worker 
286*35238bceSAndroid Build Coastguard Worker } // namespace Functional
287*35238bceSAndroid Build Coastguard Worker } // namespace gles2
288*35238bceSAndroid Build Coastguard Worker } // namespace deqp
289