• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _GLCAPICOVERAGETESTS_HPP
2 #define _GLCAPICOVERAGETESTS_HPP
3 /*-------------------------------------------------------------------------
4  * OpenGL Conformance Test Suite
5  * -----------------------------
6  *
7  * Copyright (c) 2024 The Khronos Group Inc.
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */ /*!
22  * \file
23  * \brief
24  */ /*-------------------------------------------------------------------*/
25 
26 /**
27  */ /*!
28  * \file  glcApiCoverageTests.hpp
29  * \brief Conformance tests for OpenGL and OpenGL ES API coverage.
30  */ /*-------------------------------------------------------------------*/
31 
32 #include "glcTestCase.hpp"
33 #include "glwDefs.hpp"
34 #include "tcuDefs.hpp"
35 
36 #include <map>
37 
38 namespace glcts
39 {
40 
41 struct enumTestRec
42 {
43     const char *name;
44     glw::GLint value;
45 };
46 
47 /** class to handle parsing configuration xml and run all coverage tests */
48 class ApiCoverageTestCase : public deqp::TestCase
49 {
50 public:
51     /* Public methods */
52     ApiCoverageTestCase(deqp::Context &context);
53 
54     void deinit();
55     void init();
56     tcu::TestNode::IterateResult iterate();
57 
58     bool verifyEnum(const std::string &name, const std::string &value);
59     bool verifyFunc(const std::string &name);
60 
61     glw::GLenum TestCoverageGLGuessColorBufferFormat(void);
62     glw::GLsizei TestCoverageGLCalcTargetFormats(glw::GLenum colorBufferFormat, glw::GLenum *textureFormats);
63 
64     glw::GLint createDefaultProgram(int mode);
65 
66     template <typename... Args>
67     void tcu_fail_msg(const std::string &format, Args... args);
68     void tcu_msg(const std::string &msg0, const std::string &msg1);
69 
70     typedef bool (ApiCoverageTestCase::*test_func_ptr)(void);
71 
72     bool TestCoverageGLCallReadBuffer(void);
73     bool TestCoverageGLCallDrawRangeElements(void);
74     bool TestCoverageGLCallTexImage3D(void);
75     bool TestCoverageGLCallTexSubImage3D(void);
76     bool TestCoverageGLCallCopyTexSubImage3D(void);
77     bool TestCoverageGLCallCompressedTexImage3D(void);
78     bool TestCoverageGLCallCompressedTexSubImage3D(void);
79     bool TestCoverageGLCallGenQueries(void);
80     bool TestCoverageGLCallDeleteQueries(void);
81     bool TestCoverageGLCallIsQuery(void);
82     bool TestCoverageGLCallBeginQuery(void);
83     bool TestCoverageGLCallEndQuery(void);
84     bool TestCoverageGLCallGetQueryiv(void);
85     bool TestCoverageGLCallGetQueryObjectuiv(void);
86     bool TestCoverageGLCallMapBufferRange(void);
87     bool TestCoverageGLCallUnmapBuffer(void);
88     bool TestCoverageGLCallGetBufferPointerv(void);
89     bool TestCoverageGLCallFlushMappedBufferRange(void);
90     bool TestCoverageGLCallDrawBuffers(void);
91     bool TestCoverageGLCallUniformMatrix2x4fv(void);
92     bool TestCoverageGLCallBeginTransformFeedback(void);
93     bool TestCoverageGLCallEndTransformFeedback(void);
94     bool TestCoverageGLCallBindBufferRange(void);
95     bool TestCoverageGLCallBindBufferBase(void);
96     bool TestCoverageGLCallTransformFeedbackVaryings(void);
97     bool TestCoverageGLCallGetTransformFeedbackVarying(void);
98     bool TestCoverageGLCallVertexAttribIPointer(void);
99     bool TestCoverageGLCallGetVertexAttribIiv(void);
100     bool TestCoverageGLCallGetVertexAttribIuiv(void);
101     bool TestCoverageGLCallVertexAttribI4i(void);
102     bool TestCoverageGLCallVertexAttribI4ui(void);
103     bool TestCoverageGLCallVertexAttribI4iv(void);
104     bool TestCoverageGLCallVertexAttribI4uiv(void);
105     bool TestCoverageGLCallGetUniformuiv(void);
106     bool TestCoverageGLCallGetFragDataLocation(void);
107     bool TestCoverageGLCallUniform2ui(void);
108     bool TestCoverageGLCallUniform2uiv(void);
109     bool TestCoverageGLCallClearBufferiv(void);
110     bool TestCoverageGLCallClearBufferuiv(void);
111     bool TestCoverageGLCallClearBufferfv(void);
112     bool TestCoverageGLCallClearBufferfi(void);
113     bool TestCoverageGLCallGetStringi(void);
114     bool TestCoverageGLCallBlitFramebuffer(void);
115     bool TestCoverageGLCallRenderbufferStorageMultisample(void);
116     bool TestCoverageGLCallBindVertexArray(void);
117     bool TestCoverageGLCallDeleteVertexArrays(void);
118     bool TestCoverageGLCallGenVertexArrays(void);
119     bool TestCoverageGLCallIsVertexArray(void);
120     bool TestCoverageGLCallDrawArraysInstanced(void);
121     bool TestCoverageGLCallDrawElementsInstanced(void);
122     bool TestCoverageGLCallCopyBufferSubData(void);
123     bool TestCoverageGLCallGetUniformIndices(void);
124     bool TestCoverageGLCallGetActiveUniformsiv(void);
125     bool TestCoverageGLCallGetUniformBlockIndex(void);
126     bool TestCoverageGLCallGetActiveUniformBlockiv(void);
127     bool TestCoverageGLCallGetActiveUniformBlockName(void);
128     bool TestCoverageGLCallUniformBlockBinding(void);
129     bool TestCoverageGLCallGetBufferParameteri64v(void);
130     bool TestCoverageGLCallProgramParameteri(void);
131     bool TestCoverageGLCallFenceSync(void);
132     bool TestCoverageGLCallIsSync(void);
133     bool TestCoverageGLCallDeleteSync(void);
134     bool TestCoverageGLCallClientWaitSync(void);
135     bool TestCoverageGLCallWaitSync(void);
136     bool TestCoverageGLCallGetInteger64v(void);
137     bool TestCoverageGLCallGetSynciv(void);
138     bool TestCoverageGLCallGenSamplers(void);
139     bool TestCoverageGLCallDeleteSamplers(void);
140     bool TestCoverageGLCallIsSampler(void);
141     bool TestCoverageGLCallBindSampler(void);
142     bool TestCoverageGLCallSamplerParameteri(void);
143     bool TestCoverageGLCallSamplerParameteriv(void);
144     bool TestCoverageGLCallSamplerParameterf(void);
145     bool TestCoverageGLCallSamplerParameterfv(void);
146     bool TestCoverageGLCallGetSamplerParameteriv(void);
147     bool TestCoverageGLCallGetSamplerParameterfv(void);
148     bool TestCoverageGLCallBindTransformFeedback(void);
149     bool TestCoverageGLCallDeleteTransformFeedbacks(void);
150     bool TestCoverageGLCallGenTransformFeedbacks(void);
151     bool TestCoverageGLCallIsTransformFeedback(void);
152     bool TestCoverageGLCallPauseTransformFeedback(void);
153     bool TestCoverageGLCallResumeTransformFeedback(void);
154     bool TestCoverageGLCallInvalidateFramebuffer(void);
155     bool TestCoverageGLCallInvalidateSubFramebuffer(void);
156     bool TestCoverageGLCallActiveTexture(void);
157     bool TestCoverageGLCallAttachShader(void);
158     bool TestCoverageGLCallBindAttribLocation(void);
159     bool TestCoverageGLCallBindBuffer(void);
160     bool TestCoverageGLCallBindTexture(void);
161     bool TestCoverageGLCallBlendColor(void);
162     bool TestCoverageGLCallBlendEquation(void);
163     bool TestCoverageGLCallBlendEquationSeparate(void);
164     bool TestCoverageGLCallBlendFunc(void);
165     bool TestCoverageGLCallBlendFuncSeparate(void);
166     bool TestCoverageGLCallBufferData(void);
167     bool TestCoverageGLCallBufferSubData(void);
168     bool TestCoverageGLCallClear(void);
169     bool TestCoverageGLCallClearColor(void);
170     bool TestCoverageGLCallClearStencil(void);
171     bool TestCoverageGLCallColorMask(void);
172     bool TestCoverageGLCallCompressedTexImage2D(void);
173     bool TestCoverageGLCallCompressedTexSubImage2D(void);
174     bool TestCoverageGLCallCopyTexImage2D(void);
175     bool TestCoverageGLCallCopyTexSubImage2D(void);
176     bool TestCoverageGLCallCreateProgram(void);
177     bool TestCoverageGLCallCreateShader(void);
178     bool TestCoverageGLCallCullFace(void);
179     bool TestCoverageGLCallDeleteBuffers(void);
180     bool TestCoverageGLCallDeleteTextures(void);
181     bool TestCoverageGLCallDeleteProgram(void);
182     bool TestCoverageGLCallDeleteShader(void);
183     bool TestCoverageGLCallDetachShader(void);
184     bool TestCoverageGLCallDepthFunc(void);
185     bool TestCoverageGLCallDepthMask(void);
186     bool TestCoverageGLCallDisable(void);
187     bool TestCoverageGLCallDisableVertexAttribArray(void);
188     bool TestCoverageGLCallDrawArrays(void);
189     bool TestCoverageGLCallDrawElements(void);
190     bool TestCoverageGLCallEnable(void);
191     bool TestCoverageGLCallEnableVertexAttribArray(void);
192     bool TestCoverageGLCallFinish(void);
193     bool TestCoverageGLCallFlush(void);
194     bool TestCoverageGLCallFrontFace(void);
195     bool TestCoverageGLCallGetActiveAttrib(void);
196     bool TestCoverageGLCallGetActiveUniform(void);
197     bool TestCoverageGLCallGetAttachedShaders(void);
198     bool TestCoverageGLCallGetAttribLocation(void);
199     bool TestCoverageGLCallGetBooleanv(void);
200     bool TestCoverageGLCallGetBufferParameteriv(void);
201     bool TestCoverageGLCallGenBuffers(void);
202     bool TestCoverageGLCallGenTextures(void);
203     bool TestCoverageGLCallGetError(void);
204     bool TestCoverageGLCallGetFloatv(void);
205     bool TestCoverageGLCallGetIntegerv(void);
206     bool TestCoverageGLCallGetProgramiv(void);
207     bool TestCoverageGLCallGetProgramInfoLog(void);
208     bool TestCoverageGLCallGetString(void);
209     bool TestCoverageGLCallGetTexParameteriv(void);
210     bool TestCoverageGLCallGetTexParameterfv(void);
211     bool TestCoverageGLCallGetUniformfv(void);
212     bool TestCoverageGLCallGetUniformiv(void);
213     bool TestCoverageGLCallGetUniformLocation(void);
214     bool TestCoverageGLCallGetVertexAttribfv(void);
215     bool TestCoverageGLCallGetVertexAttribiv(void);
216     bool TestCoverageGLCallGetVertexAttribPointerv(void);
217     bool TestCoverageGLCallHint(void);
218     bool TestCoverageGLCallIsBuffer(void);
219     bool TestCoverageGLCallIsEnabled(void);
220     bool TestCoverageGLCallIsProgram(void);
221     bool TestCoverageGLCallIsShader(void);
222     bool TestCoverageGLCallIsTexture(void);
223     bool TestCoverageGLCallLineWidth(void);
224     bool TestCoverageGLCallLinkProgram(void);
225     bool TestCoverageGLCallPixelStorei(void);
226     bool TestCoverageGLCallPolygonOffset(void);
227     bool TestCoverageGLCallReadPixels(void);
228     bool TestCoverageGLCallSampleCoverage(void);
229     bool TestCoverageGLCallScissor(void);
230     bool TestCoverageGLCallStencilFunc(void);
231     bool TestCoverageGLCallStencilFuncSeparate(void);
232     bool TestCoverageGLCallStencilMask(void);
233     bool TestCoverageGLCallStencilMaskSeparate(void);
234     bool TestCoverageGLCallStencilOp(void);
235     bool TestCoverageGLCallStencilOpSeparate(void);
236     bool TestCoverageGLCallTexImage2D(void);
237     bool TestCoverageGLCallTexParameteri(void);
238     bool TestCoverageGLCallTexParameterf(void);
239     bool TestCoverageGLCallTexParameteriv(void);
240     bool TestCoverageGLCallTexParameterfv(void);
241     bool TestCoverageGLCallTexSubImage2D(void);
242     bool TestCoverageGLCallUniform1i(void);
243     bool TestCoverageGLCallUniform2i(void);
244     bool TestCoverageGLCallUniform3i(void);
245     bool TestCoverageGLCallUniform4i(void);
246     bool TestCoverageGLCallUniform1f(void);
247     bool TestCoverageGLCallUniform2f(void);
248     bool TestCoverageGLCallUniform3f(void);
249     bool TestCoverageGLCallUniform4f(void);
250     bool TestCoverageGLCallUniform1iv(void);
251     bool TestCoverageGLCallUniform2iv(void);
252     bool TestCoverageGLCallUniform3iv(void);
253     bool TestCoverageGLCallUniform4iv(void);
254     bool TestCoverageGLCallUniform1fv(void);
255     bool TestCoverageGLCallUniform2fv(void);
256     bool TestCoverageGLCallUniform3fv(void);
257     bool TestCoverageGLCallUniform4fv(void);
258     bool TestCoverageGLCallUniformMatrix2fv(void);
259     bool TestCoverageGLCallUniformMatrix3fv(void);
260     bool TestCoverageGLCallUniformMatrix4fv(void);
261     bool TestCoverageGLCallUseProgram(void);
262     bool TestCoverageGLCallValidateProgram(void);
263     bool TestCoverageGLCallVertexAttrib1f(void);
264     bool TestCoverageGLCallVertexAttrib2f(void);
265     bool TestCoverageGLCallVertexAttrib3f(void);
266     bool TestCoverageGLCallVertexAttrib4f(void);
267     bool TestCoverageGLCallVertexAttrib1fv(void);
268     bool TestCoverageGLCallVertexAttrib2fv(void);
269     bool TestCoverageGLCallVertexAttrib3fv(void);
270     bool TestCoverageGLCallVertexAttrib4fv(void);
271     bool TestCoverageGLCallVertexAttribPointer(void);
272     bool TestCoverageGLCallViewport(void);
273     bool TestCoverageGLCallIsRenderbuffer(void);
274     bool TestCoverageGLCallBindRenderbuffer(void);
275     bool TestCoverageGLCallDeleteRenderbuffers(void);
276     bool TestCoverageGLCallGenRenderbuffers(void);
277     bool TestCoverageGLCallRenderbufferStorage(void);
278     bool TestCoverageGLCallGetRenderbufferParameteriv(void);
279     bool TestCoverageGLCallIsFramebuffer(void);
280     bool TestCoverageGLCallBindFramebuffer(void);
281     bool TestCoverageGLCallDeleteFramebuffers(void);
282     bool TestCoverageGLCallGenFramebuffers(void);
283     bool TestCoverageGLCallCheckFramebufferStatus(void);
284     bool TestCoverageGLCallFramebufferTexture2D(void);
285     bool TestCoverageGLCallFramebufferRenderbuffer(void);
286     bool TestCoverageGLCallGetFramebufferAttachmentParameteriv(void);
287     bool TestCoverageGLCallGenerateMipmap(void);
288     bool TestCoverageGLCallCompileShader(void);
289     bool TestCoverageGLCallGetShaderiv(void);
290     bool TestCoverageGLCallGetShaderInfoLog(void);
291     bool TestCoverageGLCallGetShaderSource(void);
292     bool TestCoverageGLCallShaderSource(void);
293     bool TestCoverageGLCallClearDepthf(void);
294     bool TestCoverageGLCallDepthRangef(void);
295     bool TestCoverageGLCallFramebufferTexture3DOES(void);
296     bool TestCoverageGLCallMapBufferOES(void);
297     bool TestCoverageGLCallTexImage3DOES(void);
298     bool TestCoverageGLCallTexSubImage3DOES(void);
299     bool TestCoverageGLCallCopyTexSubImage3DOES(void);
300     bool TestCoverageGLCallCompressedTexImage3DOES(void);
301     bool TestCoverageGLCallCompressedTexSubImage3DOES(void);
302     bool TestCoverageGLCallShaderBinary(void);
303     bool TestCoverageGLCallReleaseShaderCompiler(void);
304     bool TestCoverageGLCallGetShaderPrecisionFormat(void);
305 
306     bool TestCoverageGLCallPointSize(void);
307     bool TestCoverageGLCallPolygonMode(void);
308     bool TestCoverageGLCallTexImage1D(void);
309     bool TestCoverageGLCallDrawBuffer(void);
310     bool TestCoverageGLCallClearDepth(void);
311     bool TestCoverageGLCallLogicOp(void);
312     bool TestCoverageGLCallPixelStoref(void);
313     bool TestCoverageGLCallGetDoublev(void);
314     bool TestCoverageGLCallGetTexImage(void);
315     bool TestCoverageGLCallGetTexLevelParameterfv(void);
316     bool TestCoverageGLCallGetTexLevelParameteriv(void);
317     bool TestCoverageGLCallDepthRange(void);
318     bool TestCoverageGLCallGetPointerv(void);
319     bool TestCoverageGLCallCopyTexImage1D(void);
320     bool TestCoverageGLCallCopyTexSubImage1D(void);
321     bool TestCoverageGLCallTexSubImage1D(void);
322     bool TestCoverageGLCallCompressedTexImage1D(void);
323     bool TestCoverageGLCallCompressedTexSubImage1D(void);
324     bool TestCoverageGLCallGetCompressedTexImage(void);
325     bool TestCoverageGLCallMultiDrawArrays(void);
326     bool TestCoverageGLCallMultiDrawElements(void);
327     bool TestCoverageGLCallPointParameterf(void);
328     bool TestCoverageGLCallPointParameterfv(void);
329     bool TestCoverageGLCallPointParameteri(void);
330     bool TestCoverageGLCallPointParameteriv(void);
331     bool TestCoverageGLCallGetQueryObjectiv(void);
332     bool TestCoverageGLCallGetBufferSubData(void); /* Shared with OpenGL ES */
333     bool TestCoverageGLCallMapBuffer(void);
334     bool TestCoverageGLCallGetVertexAttribdv(void);
335     bool TestCoverageGLCallVertexAttrib1d(void);
336     bool TestCoverageGLCallVertexAttrib1dv(void);
337     bool TestCoverageGLCallVertexAttrib1s(void);
338     bool TestCoverageGLCallVertexAttrib1sv(void);
339     bool TestCoverageGLCallVertexAttrib2d(void);
340     bool TestCoverageGLCallVertexAttrib2dv(void);
341     bool TestCoverageGLCallVertexAttrib2s(void);
342     bool TestCoverageGLCallVertexAttrib2sv(void);
343     bool TestCoverageGLCallVertexAttrib3d(void);
344     bool TestCoverageGLCallVertexAttrib3dv(void);
345     bool TestCoverageGLCallVertexAttrib3s(void);
346     bool TestCoverageGLCallVertexAttrib3sv(void);
347     bool TestCoverageGLCallVertexAttrib4Nbv(void);
348     bool TestCoverageGLCallVertexAttrib4Niv(void);
349     bool TestCoverageGLCallVertexAttrib4Nsv(void);
350     bool TestCoverageGLCallVertexAttrib4Nub(void);
351     bool TestCoverageGLCallVertexAttrib4Nubv(void);
352     bool TestCoverageGLCallVertexAttrib4Nuiv(void);
353     bool TestCoverageGLCallVertexAttrib4Nusv(void);
354     bool TestCoverageGLCallVertexAttrib4bv(void);
355     bool TestCoverageGLCallVertexAttrib4d(void);
356     bool TestCoverageGLCallVertexAttrib4dv(void);
357     bool TestCoverageGLCallVertexAttrib4iv(void);
358     bool TestCoverageGLCallVertexAttrib4s(void);
359     bool TestCoverageGLCallVertexAttrib4sv(void);
360     bool TestCoverageGLCallVertexAttrib4ubv(void);
361     bool TestCoverageGLCallVertexAttrib4uiv(void);
362     bool TestCoverageGLCallVertexAttrib4usv(void);
363     bool TestCoverageGLCallUniformMatrix2x3fv(void);
364     bool TestCoverageGLCallUniformMatrix3x2fv(void);
365     bool TestCoverageGLCallUniformMatrix4x2fv(void);
366     bool TestCoverageGLCallUniformMatrix3x4fv(void);
367     bool TestCoverageGLCallUniformMatrix4x3fv(void);
368     bool TestCoverageGLCallColorMaski(void);
369     bool TestCoverageGLCallGetBooleani_v(void);
370     bool TestCoverageGLCallGetIntegeri_v(void);
371     bool TestCoverageGLCallEnablei(void);
372     bool TestCoverageGLCallDisablei(void);
373     bool TestCoverageGLCallIsEnabledi(void);
374     bool TestCoverageGLCallClampColor(void);
375     bool TestCoverageGLCallBeginConditionalRender(void);
376     bool TestCoverageGLCallEndConditionalRender(void);
377     bool TestCoverageGLCallVertexAttribI1i(void);
378     bool TestCoverageGLCallVertexAttribI2i(void);
379     bool TestCoverageGLCallVertexAttribI3i(void);
380     bool TestCoverageGLCallVertexAttribI1ui(void);
381     bool TestCoverageGLCallVertexAttribI2ui(void);
382     bool TestCoverageGLCallVertexAttribI3ui(void);
383     bool TestCoverageGLCallVertexAttribI1iv(void);
384     bool TestCoverageGLCallVertexAttribI2iv(void);
385     bool TestCoverageGLCallVertexAttribI3iv(void);
386     bool TestCoverageGLCallVertexAttribI1uiv(void);
387     bool TestCoverageGLCallVertexAttribI2uiv(void);
388     bool TestCoverageGLCallVertexAttribI3uiv(void);
389     bool TestCoverageGLCallVertexAttribI4bv(void);
390     bool TestCoverageGLCallVertexAttribI4sv(void);
391     bool TestCoverageGLCallVertexAttribI4ubv(void);
392     bool TestCoverageGLCallVertexAttribI4usv(void);
393     bool TestCoverageGLCallBindFragDataLocation(void);
394     bool TestCoverageGLCallUniform1ui(void);
395     bool TestCoverageGLCallUniform3ui(void);
396     bool TestCoverageGLCallUniform4ui(void);
397     bool TestCoverageGLCallUniform1uiv(void);
398     bool TestCoverageGLCallUniform3uiv(void);
399     bool TestCoverageGLCallUniform4uiv(void);
400     bool TestCoverageGLCallTexParameterIiv(void);
401     bool TestCoverageGLCallTexParameterIuiv(void);
402     bool TestCoverageGLCallGetTexParameterIiv(void);
403     bool TestCoverageGLCallGetTexParameterIuiv(void);
404     bool TestCoverageGLCallFramebufferTexture1D(void);
405     bool TestCoverageGLCallFramebufferTexture3D(void);
406     bool TestCoverageGLCallFramebufferTextureLayer(void);
407     bool TestCoverageGLCallTexBuffer(void);
408     bool TestCoverageGLCallPrimitiveRestartIndex(void);
409     bool TestCoverageGLCallGetActiveUniformName(void);
410     bool TestCoverageGLCallGetInteger64i_v(void);
411     bool TestCoverageGLCallFramebufferTexture(void);
412     bool TestCoverageGLCallDrawElementsBaseVertex(void);
413     bool TestCoverageGLCallDrawRangeElementsBaseVertex(void);
414     bool TestCoverageGLCallDrawElementsInstancedBaseVertex(void);
415     bool TestCoverageGLCallMultiDrawElementsBaseVertex(void);
416     bool TestCoverageGLCallProvokingVertex(void);
417     bool TestCoverageGLCallTexImage2DMultisample(void);
418     bool TestCoverageGLCallTexImage3DMultisample(void);
419     bool TestCoverageGLCallGetMultisamplefv(void);
420     bool TestCoverageGLCallSampleMaski(void);
421     bool TestCoverageGLCallBindFragDataLocationIndexed(void);
422     bool TestCoverageGLCallGetFragDataIndex(void);
423     bool TestCoverageGLCallSamplerParameterIiv(void);
424     bool TestCoverageGLCallSamplerParameterIuiv(void);
425     bool TestCoverageGLCallGetSamplerParameterIiv(void);
426     bool TestCoverageGLCallGetSamplerParameterIfv(void);
427     bool TestCoverageGLCallQueryCounter(void);
428     bool TestCoverageGLCallGetQueryObjecti64v(void);
429     bool TestCoverageGLCallGetQueryObjectui64v(void);
430     bool TestCoverageGLCallVertexP2ui(void);
431     bool TestCoverageGLCallVertexP2uiv(void);
432     bool TestCoverageGLCallVertexP3ui(void);
433     bool TestCoverageGLCallVertexP3uiv(void);
434     bool TestCoverageGLCallVertexP4ui(void);
435     bool TestCoverageGLCallVertexP4uiv(void);
436     bool TestCoverageGLCallTexCoordP1ui(void);
437     bool TestCoverageGLCallTexCoordP1uiv(void);
438     bool TestCoverageGLCallTexCoordP2ui(void);
439     bool TestCoverageGLCallTexCoordP2uiv(void);
440     bool TestCoverageGLCallTexCoordP3ui(void);
441     bool TestCoverageGLCallTexCoordP3uiv(void);
442     bool TestCoverageGLCallTexCoordP4ui(void);
443     bool TestCoverageGLCallTexCoordP4uiv(void);
444     bool TestCoverageGLCallMultiTexCoordP1ui(void);
445     bool TestCoverageGLCallMultiTexCoordP1uiv(void);
446     bool TestCoverageGLCallMultiTexCoordP2ui(void);
447     bool TestCoverageGLCallMultiTexCoordP2uiv(void);
448     bool TestCoverageGLCallMultiTexCoordP3ui(void);
449     bool TestCoverageGLCallMultiTexCoordP3uiv(void);
450     bool TestCoverageGLCallMultiTexCoordP4ui(void);
451     bool TestCoverageGLCallMultiTexCoordP4uiv(void);
452     bool TestCoverageGLCallNormalP3ui(void);
453     bool TestCoverageGLCallNormalP3uiv(void);
454     bool TestCoverageGLCallColorP3ui(void);
455     bool TestCoverageGLCallColorP3uiv(void);
456     bool TestCoverageGLCallColorP4ui(void);
457     bool TestCoverageGLCallColorP4uiv(void);
458     bool TestCoverageGLCallSecondaryColorP3ui(void);
459     bool TestCoverageGLCallSecondaryColorP3uiv(void);
460     bool TestCoverageGLCallVertexAttribP1ui(void);
461     bool TestCoverageGLCallVertexAttribP1uiv(void);
462     bool TestCoverageGLCallVertexAttribP2ui(void);
463     bool TestCoverageGLCallVertexAttribP2uiv(void);
464     bool TestCoverageGLCallVertexAttribP3ui(void);
465     bool TestCoverageGLCallVertexAttribP3uiv(void);
466     bool TestCoverageGLCallVertexAttribP4ui(void);
467     bool TestCoverageGLCallVertexAttribP4uiv(void);
468     bool TestCoverageGLCallDrawArraysIndirect(void);
469     bool TestCoverageGLCallDrawElementsIndirect(void);
470     bool TestCoverageGLCallUniform1d(void);
471     bool TestCoverageGLCallUniform2d(void);
472     bool TestCoverageGLCallUniform3d(void);
473     bool TestCoverageGLCallUniform4d(void);
474     bool TestCoverageGLCallUniform1dv(void);
475     bool TestCoverageGLCallUniform2dv(void);
476     bool TestCoverageGLCallUniform3dv(void);
477     bool TestCoverageGLCallUniform4dv(void);
478     bool TestCoverageGLCallUniformMatrix2dv(void);
479     bool TestCoverageGLCallUniformMatrix3dv(void);
480     bool TestCoverageGLCallUniformMatrix4dv(void);
481     bool TestCoverageGLCallUniformMatrix2x3dv(void);
482     bool TestCoverageGLCallUniformMatrix2x4dv(void);
483     bool TestCoverageGLCallUniformMatrix3x2dv(void);
484     bool TestCoverageGLCallUniformMatrix3x4dv(void);
485     bool TestCoverageGLCallUniformMatrix4x2dv(void);
486     bool TestCoverageGLCallUniformMatrix4x3dv(void);
487     bool TestCoverageGLCallGetUniformdv(void);
488     bool TestCoverageGLCallProgramUniform1dEXT(void);
489     bool TestCoverageGLCallProgramUniform2dEXT(void);
490     bool TestCoverageGLCallProgramUniform3dEXT(void);
491     bool TestCoverageGLCallProgramUniform4dEXT(void);
492     bool TestCoverageGLCallProgramUniform1dvEXT(void);
493     bool TestCoverageGLCallProgramUniform2dvEXT(void);
494     bool TestCoverageGLCallProgramUniform3dvEXT(void);
495     bool TestCoverageGLCallProgramUniform4dvEXT(void);
496     bool TestCoverageGLCallProgramUniformMatrix2dvEXT(void);
497     bool TestCoverageGLCallProgramUniformMatrix3dvEXT(void);
498     bool TestCoverageGLCallProgramUniformMatrix4dvEXT(void);
499     bool TestCoverageGLCallProgramUniformMatrix2x3dvEXT(void);
500     bool TestCoverageGLCallProgramUniformMatrix2x4dvEXT(void);
501     bool TestCoverageGLCallProgramUniformMatrix3x2dvEXT(void);
502     bool TestCoverageGLCallProgramUniformMatrix3x4dvEXT(void);
503     bool TestCoverageGLCallProgramUniformMatrix4x2dvEXT(void);
504     bool TestCoverageGLCallProgramUniformMatrix4x3dvEXT(void);
505     bool TestCoverageGLCallGetSubroutineUniformLocation(void);
506     bool TestCoverageGLCallGetSubroutineIndex(void);
507     bool TestCoverageGLCallGetActiveSubroutineUniformiv(void);
508     bool TestCoverageGLCallGetActiveSubroutineUniformName(void);
509     bool TestCoverageGLCallGetActiveSubroutineName(void);
510     bool TestCoverageGLCallUniformSubroutinesuiv(void);
511     bool TestCoverageGLCallGetUniformSubroutineuiv(void);
512     bool TestCoverageGLCallGetProgramStageiv(void);
513     bool TestCoverageGLCallPatchParameteri(void);
514     bool TestCoverageGLCallPatchParameterfv(void);
515     bool TestCoverageGLCallDrawTransformFeedback(void);
516     bool TestCoverageGLCallDrawTransformFeedbackStream(void);
517     bool TestCoverageGLCallBeginQueryIndexed(void);
518     bool TestCoverageGLCallEndQueryIndexed(void);
519     bool TestCoverageGLCallGetQueryIndexediv(void);
520 
521     glw::GLsizei TestCoverageGLGetNumPaletteEntries(glw::GLenum format);
522     glw::GLsizei TestCoverageGLGetCompressedPixelsSize(glw::GLenum internalformat, glw::GLsizei width,
523                                                        glw::GLsizei height, glw::GLsizei border);
524     glw::GLsizei TestCoverageGLGetCompressedPaletteSize(glw::GLenum internalformat);
525     glw::GLsizei TestCoverageGLGetPixelSize(glw::GLenum format);
526     glw::GLsizei TestCoverageGLGetCompressedTextureSize(glw::GLenum internalformat, glw::GLsizei width,
527                                                         glw::GLsizei height, glw::GLsizei border);
528 
529 private:
530     std::map<std::string, test_func_ptr> funcs_map;
531     std::map<std::string, std::string> specialization_map;
532 
533     static const glw::GLchar *m_vert_shader;
534     static const glw::GLchar *m_frag_shader;
535 
536     static const glw::GLuint m_defaultFBO = 0;
537 
538     std::string m_config_name;
539     static std::vector<std::string> m_version_names;
540     bool m_is_context_ES;
541     bool m_is_transform_feedback_obj_supported;
542     glu::ContextType m_context_type;
543 
544 private:
545     std::vector<enumTestRec> ea_BlendEquation;
546     std::vector<enumTestRec> ea_BlendEquationSeparate1;
547     std::vector<enumTestRec> ea_BlendEquationSeparate2;
548     std::vector<enumTestRec> ea_BlendFunc1;
549     std::vector<enumTestRec> ea_BlendFunc2;
550     std::vector<enumTestRec> ea_BlendFuncSeparate1;
551     std::vector<enumTestRec> ea_BlendFuncSeparate2;
552     std::vector<enumTestRec> ea_BlendFuncSeparate3;
553     std::vector<enumTestRec> ea_BlendFuncSeparate4;
554     std::vector<enumTestRec> ea_BufferObjectTargets;
555     std::vector<enumTestRec> ea_BufferObjectUsages;
556     std::vector<enumTestRec> ea_ClearBufferMask;
557     std::vector<enumTestRec> ea_CompressedTextureFormats;
558     std::vector<enumTestRec> ea_ShaderTypes;
559     std::vector<enumTestRec> ea_CullFaceMode;
560     std::vector<enumTestRec> ea_DepthFunction;
561     std::vector<enumTestRec> ea_Enable;
562     std::vector<enumTestRec> ea_Primitives;
563     std::vector<enumTestRec> ea_Face;
564     std::vector<enumTestRec> ea_FrameBufferTargets;
565     std::vector<enumTestRec> ea_FrameBufferAttachments;
566     std::vector<enumTestRec> ea_FrontFaceDirection;
567     std::vector<enumTestRec> ea_GetBoolean;
568     std::vector<enumTestRec> ea_GetBufferParameter;
569     std::vector<enumTestRec> ea_GetBufferParameter_OES_mapbuffer;
570     std::vector<enumTestRec> ea_GetFloat;
571     std::vector<enumTestRec> ea_GetFramebufferAttachmentParameter;
572     std::vector<enumTestRec> ea_GetInteger;
573     std::vector<enumTestRec> ea_GetInteger_OES_Texture_3D;
574     std::vector<enumTestRec> ea_GetPointer;
575     std::vector<enumTestRec> ea_HintTarget_OES_fragment_shader_derivative;
576     std::vector<enumTestRec> ea_InvalidRenderBufferFormats;
577     std::vector<enumTestRec> ea_RenderBufferFormats_OES_rgb8_rgba8;
578     std::vector<enumTestRec> ea_RenderBufferFormats_OES_depth_component24;
579     std::vector<enumTestRec> ea_RenderBufferFormats_OES_depth_component32;
580     std::vector<enumTestRec> ea_RenderBufferFormats_OES_stencil1;
581     std::vector<enumTestRec> ea_RenderBufferFormats_OES_stencil4;
582     std::vector<enumTestRec> ea_ShaderPrecision;
583     std::vector<enumTestRec> ea_GetIntegerES3;
584     std::vector<enumTestRec> ea_GetProgram;
585     std::vector<enumTestRec> ea_GetRenderBufferParameter;
586     std::vector<enumTestRec> ea_GetShaderStatus;
587     std::vector<enumTestRec> ea_GetString;
588     std::vector<enumTestRec> ea_GetTexParameter;
589     std::vector<enumTestRec> ea_GetVertexAttrib;
590     std::vector<enumTestRec> ea_GetVertexAttribPointer;
591     std::vector<enumTestRec> ea_HintMode;
592     std::vector<enumTestRec> ea_HintTarget;
593     std::vector<enumTestRec> ea_PixelStore;
594     std::vector<enumTestRec> ea_RenderBufferFormats;
595     std::vector<enumTestRec> ea_RenderBufferTargets;
596     std::vector<enumTestRec> ea_RenderBufferInvalidTargets;
597     std::vector<enumTestRec> ea_StencilFunction;
598     std::vector<enumTestRec> ea_StencilOp;
599     std::vector<enumTestRec> ea_TextureFormat;
600     std::vector<enumTestRec> ea_TextureMagFilter;
601     std::vector<enumTestRec> ea_TextureMinFilter;
602     std::vector<enumTestRec> ea_TextureTarget;
603     std::vector<enumTestRec> ea_TextureType;
604     std::vector<enumTestRec> ea_TextureWrapMode;
605     std::vector<enumTestRec> ea_GetBufferParameteri64v;
606     std::vector<enumTestRec> ea_ReadBuffer;
607     std::vector<enumTestRec> ea_Texture3DTarget;
608     std::vector<enumTestRec> ea_CompressedTexture3DTarget;
609     std::vector<enumTestRec> ea_CompressedTextureFormat;
610     std::vector<glw::GLsizei> CompressedTextureSize;
611     std::vector<enumTestRec> ea_DrawBuffers;
612     std::vector<enumTestRec> ea_GetInteger64v;
613     std::vector<enumTestRec> ea_GetSynciv;
614     std::vector<enumTestRec> ea_InvalidateFramebuffer;
615 };
616 
617 /** Test group which encapsulates all conformance tests */
618 class ApiCoverageTests : public deqp::TestCaseGroup
619 {
620 public:
621     /* Public methods */
622     ApiCoverageTests(deqp::Context &context);
623 
624     void init();
625 
626 private:
627     ApiCoverageTests(const ApiCoverageTests &other);
628     ApiCoverageTests &operator=(const ApiCoverageTests &other);
629 };
630 
631 } // namespace glcts
632 
633 #endif // _GLCAPICOVERAGETESTS_HPP
634