xref: /aosp_15_r20/external/deqp/modules/gles2/functional/es2fFunctionalTests.cpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1 /*-------------------------------------------------------------------------
2  * drawElements Quality Program OpenGL ES 2.0 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 Base class for a test case.
22  *//*--------------------------------------------------------------------*/
23 
24 #include "es2fFunctionalTests.hpp"
25 
26 #include "es2fColorClearTest.hpp"
27 #include "es2fLightAmountTest.hpp"
28 #include "es2fMultisampledRenderToTextureTests.hpp"
29 #include "es2fShaderExecuteTest.hpp"
30 #include "es2fFboApiTest.hpp"
31 #include "es2fFboRenderTest.hpp"
32 #include "es2fFboCompletenessTests.hpp"
33 #include "es2fRandomShaderTests.hpp"
34 #include "es2fPrerequisiteTests.hpp"
35 #include "es2fDepthTests.hpp"
36 #include "es2fStencilTests.hpp"
37 #include "es2fScissorTests.hpp"
38 #include "es2fVertexArrayTest.hpp"
39 #include "es2fRasterizationTests.hpp"
40 #include "es2fDepthStencilClearTests.hpp"
41 #include "es2fDepthStencilTests.hpp"
42 #include "es2fBlendTests.hpp"
43 #include "es2fRandomFragmentOpTests.hpp"
44 #include "es2fMultisampleTests.hpp"
45 #include "es2fUniformApiTests.hpp"
46 #include "es2fBufferWriteTests.hpp"
47 #include "es2fImplementationLimitTests.hpp"
48 #include "es2fDepthRangeTests.hpp"
49 #include "es2fDitheringTests.hpp"
50 #include "es2fClippingTests.hpp"
51 #include "es2fClipControlTests.hpp"
52 #include "es2fPolygonOffsetTests.hpp"
53 #include "es2fDrawTests.hpp"
54 #include "es2fFragOpInteractionTests.hpp"
55 #include "es2fFlushFinishTests.hpp"
56 #include "es2fDefaultVertexAttributeTests.hpp"
57 #include "es2fLifetimeTests.hpp"
58 
59 #include "es2fTextureFormatTests.hpp"
60 #include "es2fTextureWrapTests.hpp"
61 #include "es2fTextureFilteringTests.hpp"
62 #include "es2fTextureMipmapTests.hpp"
63 #include "es2fTextureSizeTests.hpp"
64 #include "es2fTextureSpecificationTests.hpp"
65 #include "es2fTextureCompletenessTests.hpp"
66 #include "es2fNegativeVertexArrayApiTests.hpp"
67 #include "es2fNegativeTextureApiTests.hpp"
68 #include "es2fNegativeFragmentApiTests.hpp"
69 #include "es2fNegativeBufferApiTests.hpp"
70 #include "es2fNegativeShaderApiTests.hpp"
71 #include "es2fNegativeStateApiTests.hpp"
72 #include "es2fVertexTextureTests.hpp"
73 #include "es2fTextureUnitTests.hpp"
74 
75 #include "es2fShaderApiTests.hpp"
76 #include "es2fShaderAlgorithmTests.hpp"
77 #include "es2fShaderBuiltinVarTests.hpp"
78 #include "es2fShaderConstExprTests.hpp"
79 #include "es2fShaderDiscardTests.hpp"
80 #include "es2fShaderFunctionTests.hpp"
81 #include "es2fShaderIndexingTests.hpp"
82 #include "es2fShaderLoopTests.hpp"
83 #include "es2fShaderOperatorTests.hpp"
84 #include "es2fShaderReturnTests.hpp"
85 #include "es2fShaderStructTests.hpp"
86 #include "es2fShaderMatrixTests.hpp"
87 #include "es2fShaderTextureFunctionTests.hpp"
88 #include "es2fAttribLocationTests.hpp"
89 #include "es2fShaderInvarianceTests.hpp"
90 #include "es2fShaderFragDataTests.hpp"
91 
92 // State query tests
93 #include "es2fBooleanStateQueryTests.hpp"
94 #include "es2fIntegerStateQueryTests.hpp"
95 #include "es2fFloatStateQueryTests.hpp"
96 #include "es2fTextureStateQueryTests.hpp"
97 #include "es2fStringQueryTests.hpp"
98 #include "es2fBufferObjectQueryTests.hpp"
99 #include "es2fFboStateQueryTests.hpp"
100 #include "es2fRboStateQueryTests.hpp"
101 #include "es2fShaderStateQueryTests.hpp"
102 
103 #include "es2fReadPixelsTests.hpp"
104 #include "es2fDebugMarkerTests.hpp"
105 
106 namespace deqp
107 {
108 namespace gles2
109 {
110 namespace Functional
111 {
112 
113 // ShadersTestGroup
114 
115 class ShadersTestGroup : public TestCaseGroup
116 {
117 public:
ShadersTestGroup(Context & context)118     ShadersTestGroup(Context &context) : TestCaseGroup(context, "shaders", "Shader Tests")
119     {
120     }
121 
~ShadersTestGroup(void)122     virtual ~ShadersTestGroup(void)
123     {
124     }
125 
init(void)126     virtual void init(void)
127     {
128         addChild(new ShaderExecuteTest(m_context, "preprocessor", "Preprocessor Tests"));
129         addChild(new ShaderExecuteTest(m_context, "constants", "Constant Literal Tests"));
130         addChild(new ShaderExecuteTest(m_context, "linkage", "Linkage Tests"));
131         addChild(new ShaderExecuteTest(m_context, "conversions", "Type Conversion Tests"));
132         addChild(new ShaderExecuteTest(m_context, "conditionals", "Conditionals Tests"));
133         addChild(new ShaderExecuteTest(m_context, "declarations", "Declarations Tests"));
134         addChild(new ShaderExecuteTest(m_context, "swizzles", "Swizzle Tests"));
135         addChild(new ShaderExecuteTest(m_context, "functions", "Function Tests"));
136         addChild(new ShaderExecuteTest(m_context, "keywords", "Keyword Tests"));
137         addChild(new ShaderExecuteTest(m_context, "reserved_operators", "Reserved Operator Tests"));
138         addChild(new ShaderExecuteTest(m_context, "qualification_order", "Order of Qualification Tests"));
139         addChild(new ShaderExecuteTest(m_context, "scoping", "Scoping of Declarations"));
140         addChild(new ShaderExecuteTest(m_context, "invalid_implicit_conversions", "Invalid Implicit Conversions"));
141         addChild(new ShaderExecuteTest(m_context, "misc", "Miscellaneous Tests"));
142 
143         addChild(new ShaderIndexingTests(m_context));
144         addChild(new ShaderLoopTests(m_context));
145         addChild(new ShaderOperatorTests(m_context));
146         addChild(new ShaderMatrixTests(m_context));
147         addChild(new ShaderReturnTests(m_context));
148         addChild(new ShaderDiscardTests(m_context));
149         addChild(new ShaderStructTests(m_context));
150         addChild(new ShaderBuiltinVarTests(m_context));
151         addChild(new ShaderTextureFunctionTests(m_context));
152         addChild(new ShaderInvarianceTests(m_context));
153         addChild(new ShaderFragDataTests(m_context));
154         addChild(new ShaderAlgorithmTests(m_context));
155         addChild(new ShaderConstExprTests(m_context));
156         addChild(new ShaderFunctionTests(m_context));
157 
158         addChild(new RandomShaderTests(m_context));
159     }
160 };
161 
162 // TextureTestGroup
163 
164 class TextureTestGroup : public TestCaseGroup
165 {
166 public:
TextureTestGroup(Context & context)167     TextureTestGroup(Context &context) : TestCaseGroup(context, "texture", "Texture Tests")
168     {
169     }
170 
~TextureTestGroup(void)171     virtual ~TextureTestGroup(void)
172     {
173     }
174 
init(void)175     virtual void init(void)
176     {
177         addChild(new TextureFormatTests(m_context));
178         addChild(new TextureSizeTests(m_context));
179         addChild(new TextureWrapTests(m_context));
180         addChild(new TextureFilteringTests(m_context));
181         addChild(new TextureMipmapTests(m_context));
182         addChild(new TextureSpecificationTests(m_context));
183         addChild(new TextureCompletenessTests(m_context));
184         addChild(new VertexTextureTests(m_context));
185         addChild(new TextureUnitTests(m_context));
186     }
187 
deinit(void)188     virtual void deinit(void)
189     {
190     }
191 };
192 
193 class BufferTests : public TestCaseGroup
194 {
195 public:
BufferTests(Context & context)196     BufferTests(Context &context) : TestCaseGroup(context, "buffer", "Buffer object tests")
197     {
198     }
199 
init(void)200     void init(void)
201     {
202         addChild(new BufferWriteTests(m_context));
203     }
204 };
205 
206 // FboTestGroup
207 
208 class FboTestGroup : public TestCaseGroup
209 {
210 public:
FboTestGroup(Context & context)211     FboTestGroup(Context &context) : TestCaseGroup(context, "fbo", "Framebuffer Object Tests")
212     {
213     }
214 
~FboTestGroup(void)215     virtual ~FboTestGroup(void)
216     {
217     }
218 
init(void)219     virtual void init(void)
220     {
221         addChild(new FboApiTestGroup(m_context));
222         addChild(new FboRenderTestGroup(m_context));
223         addChild(createFboCompletenessTests(m_context));
224     }
225 };
226 
227 // NegativeApiTestGroup
228 
229 class NegativeApiTestGroup : public TestCaseGroup
230 {
231 public:
NegativeApiTestGroup(Context & context)232     NegativeApiTestGroup(Context &context) : TestCaseGroup(context, "negative_api", "Negative API Tests")
233     {
234     }
235 
~NegativeApiTestGroup(void)236     virtual ~NegativeApiTestGroup(void)
237     {
238     }
239 
init(void)240     virtual void init(void)
241     {
242         addChild(new NegativeBufferApiTests(m_context));
243         addChild(new NegativeFragmentApiTests(m_context));
244         addChild(new NegativeShaderApiTests(m_context));
245         addChild(new NegativeStateApiTests(m_context));
246         addChild(new NegativeTextureApiTests(m_context));
247         addChild(new NegativeVertexArrayApiTests(m_context));
248     }
249 };
250 
251 // FragmentOpTests
252 
253 class FragmentOpTests : public TestCaseGroup
254 {
255 public:
FragmentOpTests(Context & context)256     FragmentOpTests(Context &context) : TestCaseGroup(context, "fragment_ops", "Per-Fragment Operation Tests")
257     {
258     }
259 
init(void)260     void init(void)
261     {
262         addChild(new DepthTests(m_context));
263         addChild(new StencilTests(m_context));
264         addChild(new DepthStencilTests(m_context));
265         addChild(new ScissorTests(m_context));
266         addChild(new BlendTests(m_context));
267         addChild(new RandomFragmentOpTests(m_context));
268         addChild(new FragOpInteractionTests(m_context));
269     }
270 };
271 
272 // StateQueryTests
273 
274 class StateQueryTests : public TestCaseGroup
275 {
276 public:
StateQueryTests(Context & context)277     StateQueryTests(Context &context) : TestCaseGroup(context, "state_query", "State Query Tests")
278     {
279     }
280 
init(void)281     void init(void)
282     {
283         addChild(new BooleanStateQueryTests(m_context));
284         addChild(new IntegerStateQueryTests(m_context));
285         addChild(new FloatStateQueryTests(m_context));
286         addChild(new TextureStateQueryTests(m_context));
287         addChild(new StringQueryTests(m_context));
288         addChild(new BufferObjectQueryTests(m_context));
289         addChild(new FboStateQueryTests(m_context));
290         addChild(new RboStateQueryTests(m_context));
291         addChild(new ShaderStateQueryTests(m_context));
292     }
293 };
294 
295 // FunctionalTestGroup
296 
FunctionalTests(Context & context)297 FunctionalTests::FunctionalTests(Context &context) : TestCaseGroup(context, "functional", "Functionality Tests")
298 {
299 }
300 
~FunctionalTests(void)301 FunctionalTests::~FunctionalTests(void)
302 {
303 }
304 
init(void)305 void FunctionalTests::init(void)
306 {
307     addChild(new PrerequisiteTests(m_context));
308     addChild(new ImplementationLimitTests(m_context));
309     addChild(new ClipControlTests(m_context));
310     addChild(new ColorClearTest(m_context));
311     addChild(new DepthStencilClearTests(m_context));
312     addChild(new BufferTests(m_context));
313     addChild(new LightAmountTest(m_context));
314     addChild(new MultisampledRenderToTextureTests(m_context));
315     addChild(new ShadersTestGroup(m_context));
316     addChild(new TextureTestGroup(m_context));
317     addChild(new FragmentOpTests(m_context));
318     addChild(new FboTestGroup(m_context));
319     addChild(new VertexArrayTestGroup(m_context));
320     addChild(new ShaderApiTests(m_context));
321     addChild(new NegativeApiTestGroup(m_context));
322     addChild(new RasterizationTests(m_context));
323     addChild(createAttributeLocationTests(m_context));
324     addChild(new MultisampleTests(m_context));
325     addChild(new UniformApiTests(m_context));
326     addChild(new ReadPixelsTests(m_context));
327     addChild(new DepthRangeTests(m_context));
328     addChild(new DitheringTests(m_context));
329     addChild(new StateQueryTests(m_context));
330     addChild(new ClippingTests(m_context));
331     addChild(new PolygonOffsetTests(m_context));
332     addChild(new DrawTests(m_context));
333     addChild(new FlushFinishTests(m_context));
334     addChild(new DefaultVertexAttributeTests(m_context));
335     addChild(createLifetimeTests(m_context));
336     addChild(createDebugMarkerTests(m_context));
337 }
338 
339 } // namespace Functional
340 } // namespace gles2
341 } // namespace deqp
342