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)
119 : TestCaseGroup(context, "shaders", "Shader Tests")
120 {
121 }
122
~ShadersTestGroup(void)123 virtual ~ShadersTestGroup (void)
124 {
125 }
126
init(void)127 virtual void init (void)
128 {
129 addChild(new ShaderExecuteTest(m_context, "preprocessor", "Preprocessor Tests"));
130 addChild(new ShaderExecuteTest(m_context, "constants", "Constant Literal Tests"));
131 addChild(new ShaderExecuteTest(m_context, "linkage", "Linkage Tests"));
132 addChild(new ShaderExecuteTest(m_context, "conversions", "Type Conversion Tests"));
133 addChild(new ShaderExecuteTest(m_context, "conditionals", "Conditionals Tests"));
134 addChild(new ShaderExecuteTest(m_context, "declarations", "Declarations Tests"));
135 addChild(new ShaderExecuteTest(m_context, "swizzles", "Swizzle Tests"));
136 addChild(new ShaderExecuteTest(m_context, "functions", "Function Tests"));
137 addChild(new ShaderExecuteTest(m_context, "keywords", "Keyword Tests"));
138 addChild(new ShaderExecuteTest(m_context, "reserved_operators", "Reserved Operator Tests"));
139 addChild(new ShaderExecuteTest(m_context, "qualification_order", "Order of Qualification Tests"));
140 addChild(new ShaderExecuteTest(m_context, "scoping", "Scoping of Declarations"));
141 addChild(new ShaderExecuteTest(m_context, "invalid_implicit_conversions", "Invalid Implicit Conversions"));
142 addChild(new ShaderExecuteTest(m_context, "misc", "Miscellaneous Tests"));
143
144
145 addChild(new ShaderIndexingTests (m_context));
146 addChild(new ShaderLoopTests (m_context));
147 addChild(new ShaderOperatorTests (m_context));
148 addChild(new ShaderMatrixTests (m_context));
149 addChild(new ShaderReturnTests (m_context));
150 addChild(new ShaderDiscardTests (m_context));
151 addChild(new ShaderStructTests (m_context));
152 addChild(new ShaderBuiltinVarTests (m_context));
153 addChild(new ShaderTextureFunctionTests (m_context));
154 addChild(new ShaderInvarianceTests (m_context));
155 addChild(new ShaderFragDataTests (m_context));
156 addChild(new ShaderAlgorithmTests (m_context));
157 addChild(new ShaderConstExprTests (m_context));
158 addChild(new ShaderFunctionTests (m_context));
159
160 addChild(new RandomShaderTests(m_context));
161 }
162 };
163
164 // TextureTestGroup
165
166 class TextureTestGroup : public TestCaseGroup
167 {
168 public:
TextureTestGroup(Context & context)169 TextureTestGroup (Context& context)
170 : TestCaseGroup(context, "texture", "Texture Tests")
171 {
172 }
173
~TextureTestGroup(void)174 virtual ~TextureTestGroup (void)
175 {
176 }
177
init(void)178 virtual void init (void)
179 {
180 addChild(new TextureFormatTests (m_context));
181 addChild(new TextureSizeTests (m_context));
182 addChild(new TextureWrapTests (m_context));
183 addChild(new TextureFilteringTests (m_context));
184 addChild(new TextureMipmapTests (m_context));
185 addChild(new TextureSpecificationTests (m_context));
186 addChild(new TextureCompletenessTests (m_context));
187 addChild(new VertexTextureTests (m_context));
188 addChild(new TextureUnitTests (m_context));
189 }
190
deinit(void)191 virtual void deinit (void)
192 {
193 }
194 };
195
196 class BufferTests : public TestCaseGroup
197 {
198 public:
BufferTests(Context & context)199 BufferTests (Context& context)
200 : TestCaseGroup(context, "buffer", "Buffer object tests")
201 {
202 }
203
init(void)204 void init (void)
205 {
206 addChild(new BufferWriteTests(m_context));
207 }
208 };
209
210 // FboTestGroup
211
212 class FboTestGroup : public TestCaseGroup
213 {
214 public:
FboTestGroup(Context & context)215 FboTestGroup (Context& context)
216 : TestCaseGroup(context, "fbo", "Framebuffer Object Tests")
217 {
218 }
219
~FboTestGroup(void)220 virtual ~FboTestGroup (void)
221 {
222 }
223
init(void)224 virtual void init (void)
225 {
226 addChild(new FboApiTestGroup(m_context));
227 addChild(new FboRenderTestGroup(m_context));
228 addChild(createFboCompletenessTests(m_context));
229 }
230 };
231
232 // NegativeApiTestGroup
233
234 class NegativeApiTestGroup : public TestCaseGroup
235 {
236 public:
NegativeApiTestGroup(Context & context)237 NegativeApiTestGroup (Context& context)
238 : TestCaseGroup(context, "negative_api", "Negative API Tests")
239 {
240 }
241
~NegativeApiTestGroup(void)242 virtual ~NegativeApiTestGroup (void)
243 {
244 }
245
init(void)246 virtual void init (void)
247 {
248 addChild(new NegativeBufferApiTests (m_context));
249 addChild(new NegativeFragmentApiTests (m_context));
250 addChild(new NegativeShaderApiTests (m_context));
251 addChild(new NegativeStateApiTests (m_context));
252 addChild(new NegativeTextureApiTests (m_context));
253 addChild(new NegativeVertexArrayApiTests (m_context));
254 }
255 };
256
257 // FragmentOpTests
258
259 class FragmentOpTests : public TestCaseGroup
260 {
261 public:
FragmentOpTests(Context & context)262 FragmentOpTests (Context& context)
263 : TestCaseGroup(context, "fragment_ops", "Per-Fragment Operation Tests")
264 {
265 }
266
init(void)267 void init (void)
268 {
269 addChild(new DepthTests (m_context));
270 addChild(new StencilTests (m_context));
271 addChild(new DepthStencilTests (m_context));
272 addChild(new ScissorTests (m_context));
273 addChild(new BlendTests (m_context));
274 addChild(new RandomFragmentOpTests (m_context));
275 addChild(new FragOpInteractionTests (m_context));
276 }
277 };
278
279 // StateQueryTests
280
281 class StateQueryTests : public TestCaseGroup
282 {
283 public:
StateQueryTests(Context & context)284 StateQueryTests (Context& context)
285 : TestCaseGroup(context, "state_query", "State Query Tests")
286 {
287 }
288
init(void)289 void init (void)
290 {
291 addChild(new BooleanStateQueryTests (m_context));
292 addChild(new IntegerStateQueryTests (m_context));
293 addChild(new FloatStateQueryTests (m_context));
294 addChild(new TextureStateQueryTests (m_context));
295 addChild(new StringQueryTests (m_context));
296 addChild(new BufferObjectQueryTests (m_context));
297 addChild(new FboStateQueryTests (m_context));
298 addChild(new RboStateQueryTests (m_context));
299 addChild(new ShaderStateQueryTests (m_context));
300 }
301 };
302
303 // FunctionalTestGroup
304
FunctionalTests(Context & context)305 FunctionalTests::FunctionalTests (Context& context)
306 : TestCaseGroup(context, "functional", "Functionality Tests")
307 {
308 }
309
~FunctionalTests(void)310 FunctionalTests::~FunctionalTests (void)
311 {
312 }
313
init(void)314 void FunctionalTests::init (void)
315 {
316 addChild(new PrerequisiteTests (m_context));
317 addChild(new ImplementationLimitTests (m_context));
318 addChild(new ClipControlTests (m_context));
319 addChild(new ColorClearTest (m_context));
320 addChild(new DepthStencilClearTests (m_context));
321 addChild(new BufferTests (m_context));
322 addChild(new LightAmountTest (m_context));
323 addChild(new MultisampledRenderToTextureTests (m_context));
324 addChild(new ShadersTestGroup (m_context));
325 addChild(new TextureTestGroup (m_context));
326 addChild(new FragmentOpTests (m_context));
327 addChild(new FboTestGroup (m_context));
328 addChild(new VertexArrayTestGroup (m_context));
329 addChild(new ShaderApiTests (m_context));
330 addChild(new NegativeApiTestGroup (m_context));
331 addChild(new RasterizationTests (m_context));
332 addChild(createAttributeLocationTests (m_context));
333 addChild(new MultisampleTests (m_context));
334 addChild(new UniformApiTests (m_context));
335 addChild(new ReadPixelsTests (m_context));
336 addChild(new DepthRangeTests (m_context));
337 addChild(new DitheringTests (m_context));
338 addChild(new StateQueryTests (m_context));
339 addChild(new ClippingTests (m_context));
340 addChild(new PolygonOffsetTests (m_context));
341 addChild(new DrawTests (m_context));
342 addChild(new FlushFinishTests (m_context));
343 addChild(new DefaultVertexAttributeTests (m_context));
344 addChild(createLifetimeTests (m_context));
345 addChild(createDebugMarkerTests (m_context));
346 }
347
348 } // Functional
349 } // gles2
350 } // deqp
351