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