1 //
2 // Copyright 2017 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // ConformanceTests.cpp:
7 //   GLES1 conformance tests.
8 //   Function prototypes taken from tproto.h and turned into gtest tests using a macro.
9 //
10 
11 #include "test_utils/ANGLETest.h"
12 #include "test_utils/gl_raii.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 // ES 1.0
19 extern long AmbLightExec(void);
20 extern long AmbMatExec(void);
21 extern long AmbSceneExec(void);
22 extern long APFuncExec(void);
23 extern long AtnConstExec(void);
24 extern long AtnPosExec(void);
25 extern long BClearExec(void);
26 extern long BColorExec(void);
27 extern long BCornerExec(void);
28 extern long BlendExec(void);
29 extern long ClipExec(void);
30 extern long ColRampExec(void);
31 extern long CopyTexExec(void);
32 extern long DifLightExec(void);
33 extern long DifMatExec(void);
34 extern long DifMatNormExec(void);
35 extern long DifMatPosExec(void);
36 extern long DitherExec(void);
37 extern long DivZeroExec(void);
38 extern long EmitMatExec(void);
39 extern long FogExpExec(void);
40 extern long FogLinExec(void);
41 extern long LineAntiAliasExec(void);
42 extern long LineHVExec(void);
43 extern long LineRasterExec(void);
44 extern long LogicOpExec(void);
45 extern long MipExec(void);
46 extern long MipLevelsExec(void);
47 extern long MipLinExec(void);
48 extern long MipSelectExec(void);
49 extern long MaskExec(void);
50 extern long MatrixStackExec(void);
51 extern long MultiTexExec(void);
52 extern long MustPassExec(void);
53 extern long PackedPixelsExec(void);
54 extern long PointAntiAliasExec(void);
55 extern long PointRasterExec(void);
56 extern long PolyCullExec(void);
57 extern long ReadFormatExec(void);
58 extern long RescaleNormalExec(void);
59 extern long ScissorExec(void);
60 extern long SPClearExec(void);
61 extern long SPCornerExec(void);
62 extern long SpecExpExec(void);
63 extern long SpecExpNormExec(void);
64 extern long SpecLightExec(void);
65 extern long SpecMatExec(void);
66 extern long SpecNormExec(void);
67 extern long SPFuncExec(void);
68 extern long SPOpExec(void);
69 extern long SpotPosExec(void);
70 extern long SpotExpPosExec(void);
71 extern long SpotExpDirExec(void);
72 extern long TexDecalExec(void);
73 extern long TexPaletExec(void);
74 extern long TextureEdgeClampExec(void);
75 extern long TriRasterExec(void);
76 extern long TriTileExec(void);
77 extern long VertexOrderExec(void);
78 extern long ViewportClampExec(void);
79 extern long XFormExec(void);
80 extern long XFormMixExec(void);
81 extern long XFormNormalExec(void);
82 extern long XFormViewportExec(void);
83 extern long XFormHomogenousExec(void);
84 extern long ZBClearExec(void);
85 extern long ZBFuncExec(void);
86 
87 // GL_OES_draw_texture
88 extern long DrawTexExec(void);
89 
90 // GL_OES_query_matrix
91 extern long MatrixQueryExec(void);
92 
93 // ES 1.1
94 extern long BufferObjectExec(void);
95 extern long PointSizeArrayExec(void);
96 extern long PointSpriteExec(void);
97 extern long UserClipExec(void);
98 extern long MatrixGetTestExec(void);
99 extern long GetsExec(void);
100 extern long TexCombineExec(void);
101 
102 // GL_OES_matrix_palette
103 extern long MatrixPaletteExec(void);
104 
105 // Test driver setup
106 void BufferSetup(void);
107 void EpsilonSetup(void);
108 void StateSetup(void);
109 
110 #define CONFORMANCE_TEST_ERROR (-1)
111 
112 #ifdef __cplusplus
113 }
114 
115 #endif
116 namespace angle
117 {
118 class GLES1ConformanceTest : public ANGLETest
119 {
120   protected:
GLES1ConformanceTest()121     GLES1ConformanceTest()
122     {
123         setWindowWidth(48);
124         setWindowHeight(48);
125         setConfigRedBits(8);
126         setConfigGreenBits(8);
127         setConfigBlueBits(8);
128         setConfigAlphaBits(8);
129         setConfigDepthBits(24);
130         setConfigStencilBits(8);
131     }
132 
testSetUp()133     void testSetUp() override
134     {
135         BufferSetup();
136         EpsilonSetup();
137         StateSetup();
138     }
139 };
140 
TEST_P(GLES1ConformanceTest,AmbLight)141 TEST_P(GLES1ConformanceTest, AmbLight)
142 {
143     // Flaky timeouts due to slow test. http://anglebug.com/5234
144     ANGLE_SKIP_TEST_IF(IsVulkan());
145     ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbLightExec());
146 }
147 
TEST_P(GLES1ConformanceTest,AmbMat)148 TEST_P(GLES1ConformanceTest, AmbMat)
149 {
150     ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbMatExec());
151 }
152 
TEST_P(GLES1ConformanceTest,AmbScene)153 TEST_P(GLES1ConformanceTest, AmbScene)
154 {
155     ASSERT_NE(CONFORMANCE_TEST_ERROR, AmbSceneExec());
156 }
157 
TEST_P(GLES1ConformanceTest,APFunc)158 TEST_P(GLES1ConformanceTest, APFunc)
159 {
160     ASSERT_NE(CONFORMANCE_TEST_ERROR, APFuncExec());
161 }
162 
TEST_P(GLES1ConformanceTest,AtnConst)163 TEST_P(GLES1ConformanceTest, AtnConst)
164 {
165     ASSERT_NE(CONFORMANCE_TEST_ERROR, AtnConstExec());
166 }
167 
TEST_P(GLES1ConformanceTest,AtnPos)168 TEST_P(GLES1ConformanceTest, AtnPos)
169 {
170     ASSERT_NE(CONFORMANCE_TEST_ERROR, AtnPosExec());
171 }
172 
TEST_P(GLES1ConformanceTest,BClear)173 TEST_P(GLES1ConformanceTest, BClear)
174 {
175     ASSERT_NE(CONFORMANCE_TEST_ERROR, BClearExec());
176 }
177 
TEST_P(GLES1ConformanceTest,BColor)178 TEST_P(GLES1ConformanceTest, BColor)
179 {
180     ASSERT_NE(CONFORMANCE_TEST_ERROR, BColorExec());
181 }
182 
TEST_P(GLES1ConformanceTest,BCorner)183 TEST_P(GLES1ConformanceTest, BCorner)
184 {
185     ASSERT_NE(CONFORMANCE_TEST_ERROR, BCornerExec());
186 }
187 
TEST_P(GLES1ConformanceTest,Blend)188 TEST_P(GLES1ConformanceTest, Blend)
189 {
190     // Slow test, takes over 20 seconds in some configs. http://anglebug.com/5171
191     ANGLE_SKIP_TEST_IF(IsVulkan() && IsIntel() && IsWindows());
192     ASSERT_NE(CONFORMANCE_TEST_ERROR, BlendExec());
193 }
194 
TEST_P(GLES1ConformanceTest,Clip)195 TEST_P(GLES1ConformanceTest, Clip)
196 {
197     ASSERT_NE(CONFORMANCE_TEST_ERROR, ClipExec());
198 }
199 
TEST_P(GLES1ConformanceTest,ColRamp)200 TEST_P(GLES1ConformanceTest, ColRamp)
201 {
202     ASSERT_NE(CONFORMANCE_TEST_ERROR, ColRampExec());
203 }
204 
TEST_P(GLES1ConformanceTest,CopyTex)205 TEST_P(GLES1ConformanceTest, CopyTex)
206 {
207     ASSERT_NE(CONFORMANCE_TEST_ERROR, CopyTexExec());
208 }
209 
TEST_P(GLES1ConformanceTest,DifLight)210 TEST_P(GLES1ConformanceTest, DifLight)
211 {
212     ASSERT_NE(CONFORMANCE_TEST_ERROR, DifLightExec());
213 }
214 
TEST_P(GLES1ConformanceTest,DifMat)215 TEST_P(GLES1ConformanceTest, DifMat)
216 {
217     ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatExec());
218 }
219 
TEST_P(GLES1ConformanceTest,DifMatNorm)220 TEST_P(GLES1ConformanceTest, DifMatNorm)
221 {
222     ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatNormExec());
223 }
224 
TEST_P(GLES1ConformanceTest,DifMatPos)225 TEST_P(GLES1ConformanceTest, DifMatPos)
226 {
227     ASSERT_NE(CONFORMANCE_TEST_ERROR, DifMatPosExec());
228 }
229 
TEST_P(GLES1ConformanceTest,Dither)230 TEST_P(GLES1ConformanceTest, Dither)
231 {
232     ASSERT_NE(CONFORMANCE_TEST_ERROR, DitherExec());
233 }
234 
TEST_P(GLES1ConformanceTest,DivZero)235 TEST_P(GLES1ConformanceTest, DivZero)
236 {
237     ASSERT_NE(CONFORMANCE_TEST_ERROR, DivZeroExec());
238 }
239 
TEST_P(GLES1ConformanceTest,EmitMat)240 TEST_P(GLES1ConformanceTest, EmitMat)
241 {
242     ASSERT_NE(CONFORMANCE_TEST_ERROR, EmitMatExec());
243 }
244 
TEST_P(GLES1ConformanceTest,FogExp)245 TEST_P(GLES1ConformanceTest, FogExp)
246 {
247     ASSERT_NE(CONFORMANCE_TEST_ERROR, FogExpExec());
248 }
249 
TEST_P(GLES1ConformanceTest,FogLin)250 TEST_P(GLES1ConformanceTest, FogLin)
251 {
252     ASSERT_NE(CONFORMANCE_TEST_ERROR, FogLinExec());
253 }
254 
TEST_P(GLES1ConformanceTest,LineAntiAlias)255 TEST_P(GLES1ConformanceTest, LineAntiAlias)
256 {
257     ANGLE_SKIP_TEST_IF(true);
258     ASSERT_NE(CONFORMANCE_TEST_ERROR, LineAntiAliasExec());
259 }
260 
TEST_P(GLES1ConformanceTest,LineHV)261 TEST_P(GLES1ConformanceTest, LineHV)
262 {
263     ASSERT_NE(CONFORMANCE_TEST_ERROR, LineHVExec());
264 }
265 
TEST_P(GLES1ConformanceTest,LineRaster)266 TEST_P(GLES1ConformanceTest, LineRaster)
267 {
268     // http://g.co/anglebug/3862
269     ANGLE_SKIP_TEST_IF(IsVulkan());
270     ASSERT_NE(CONFORMANCE_TEST_ERROR, LineRasterExec());
271 }
272 
TEST_P(GLES1ConformanceTest,LogicOp)273 TEST_P(GLES1ConformanceTest, LogicOp)
274 {
275     ANGLE_SKIP_TEST_IF(true);
276     ASSERT_NE(CONFORMANCE_TEST_ERROR, LogicOpExec());
277 }
278 
TEST_P(GLES1ConformanceTest,Mip)279 TEST_P(GLES1ConformanceTest, Mip)
280 {
281     ASSERT_NE(CONFORMANCE_TEST_ERROR, MipExec());
282 }
283 
TEST_P(GLES1ConformanceTest,MipLevels)284 TEST_P(GLES1ConformanceTest, MipLevels)
285 {
286     ANGLE_SKIP_TEST_IF(true);
287     ASSERT_NE(CONFORMANCE_TEST_ERROR, MipLevelsExec());
288 }
289 
TEST_P(GLES1ConformanceTest,MipLin)290 TEST_P(GLES1ConformanceTest, MipLin)
291 {
292     ASSERT_NE(CONFORMANCE_TEST_ERROR, MipLinExec());
293 }
294 
TEST_P(GLES1ConformanceTest,MipSelect)295 TEST_P(GLES1ConformanceTest, MipSelect)
296 {
297     ASSERT_NE(CONFORMANCE_TEST_ERROR, MipSelectExec());
298 }
299 
TEST_P(GLES1ConformanceTest,Mask)300 TEST_P(GLES1ConformanceTest, Mask)
301 {
302     ASSERT_NE(CONFORMANCE_TEST_ERROR, MaskExec());
303 }
304 
TEST_P(GLES1ConformanceTest,MatrixStack)305 TEST_P(GLES1ConformanceTest, MatrixStack)
306 {
307     ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixStackExec());
308 }
309 
TEST_P(GLES1ConformanceTest,MultiTex)310 TEST_P(GLES1ConformanceTest, MultiTex)
311 {
312     ASSERT_NE(CONFORMANCE_TEST_ERROR, MultiTexExec());
313 }
314 
TEST_P(GLES1ConformanceTest,MustPass)315 TEST_P(GLES1ConformanceTest, MustPass)
316 {
317     ANGLE_SKIP_TEST_IF(true);
318     ASSERT_NE(CONFORMANCE_TEST_ERROR, MustPassExec());
319 }
320 
TEST_P(GLES1ConformanceTest,PackedPixels)321 TEST_P(GLES1ConformanceTest, PackedPixels)
322 {
323     ASSERT_NE(CONFORMANCE_TEST_ERROR, PackedPixelsExec());
324 }
325 
TEST_P(GLES1ConformanceTest,PointAntiAlias)326 TEST_P(GLES1ConformanceTest, PointAntiAlias)
327 {
328     ANGLE_SKIP_TEST_IF(true);
329     ASSERT_NE(CONFORMANCE_TEST_ERROR, PointAntiAliasExec());
330 }
331 
TEST_P(GLES1ConformanceTest,PointRaster)332 TEST_P(GLES1ConformanceTest, PointRaster)
333 {
334     ASSERT_NE(CONFORMANCE_TEST_ERROR, PointRasterExec());
335 }
336 
TEST_P(GLES1ConformanceTest,PolyCull)337 TEST_P(GLES1ConformanceTest, PolyCull)
338 {
339     ASSERT_NE(CONFORMANCE_TEST_ERROR, PolyCullExec());
340 }
341 
TEST_P(GLES1ConformanceTest,ReadFormat)342 TEST_P(GLES1ConformanceTest, ReadFormat)
343 {
344     ASSERT_NE(CONFORMANCE_TEST_ERROR, ReadFormatExec());
345 }
346 
TEST_P(GLES1ConformanceTest,RescaleNormal)347 TEST_P(GLES1ConformanceTest, RescaleNormal)
348 {
349     ANGLE_SKIP_TEST_IF(true);
350     ASSERT_NE(CONFORMANCE_TEST_ERROR, RescaleNormalExec());
351 }
352 
TEST_P(GLES1ConformanceTest,Scissor)353 TEST_P(GLES1ConformanceTest, Scissor)
354 {
355     ASSERT_NE(CONFORMANCE_TEST_ERROR, ScissorExec());
356 }
357 
TEST_P(GLES1ConformanceTest,SPClear)358 TEST_P(GLES1ConformanceTest, SPClear)
359 {
360     // http://g.co/anglebug/3863
361     ANGLE_SKIP_TEST_IF(IsVulkan());
362     ASSERT_NE(CONFORMANCE_TEST_ERROR, SPClearExec());
363 }
364 
TEST_P(GLES1ConformanceTest,SPCorner)365 TEST_P(GLES1ConformanceTest, SPCorner)
366 {
367     ASSERT_NE(CONFORMANCE_TEST_ERROR, SPCornerExec());
368 }
369 
TEST_P(GLES1ConformanceTest,SpecExp)370 TEST_P(GLES1ConformanceTest, SpecExp)
371 {
372     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecExpExec());
373 }
374 
TEST_P(GLES1ConformanceTest,SpecExpNorm)375 TEST_P(GLES1ConformanceTest, SpecExpNorm)
376 {
377     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecExpNormExec());
378 }
379 
TEST_P(GLES1ConformanceTest,SpecLight)380 TEST_P(GLES1ConformanceTest, SpecLight)
381 {
382     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecLightExec());
383 }
384 
TEST_P(GLES1ConformanceTest,SpecMat)385 TEST_P(GLES1ConformanceTest, SpecMat)
386 {
387     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecMatExec());
388 }
389 
TEST_P(GLES1ConformanceTest,SpecNorm)390 TEST_P(GLES1ConformanceTest, SpecNorm)
391 {
392     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpecNormExec());
393 }
394 
TEST_P(GLES1ConformanceTest,SPFunc)395 TEST_P(GLES1ConformanceTest, SPFunc)
396 {
397     ASSERT_NE(CONFORMANCE_TEST_ERROR, SPFuncExec());
398 }
399 
TEST_P(GLES1ConformanceTest,SPOp)400 TEST_P(GLES1ConformanceTest, SPOp)
401 {
402     ASSERT_NE(CONFORMANCE_TEST_ERROR, SPOpExec());
403 }
404 
TEST_P(GLES1ConformanceTest,SpotPos)405 TEST_P(GLES1ConformanceTest, SpotPos)
406 {
407     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotPosExec());
408 }
409 
TEST_P(GLES1ConformanceTest,SpotExpPos)410 TEST_P(GLES1ConformanceTest, SpotExpPos)
411 {
412     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpPosExec());
413 }
414 
TEST_P(GLES1ConformanceTest,SpotExpDir)415 TEST_P(GLES1ConformanceTest, SpotExpDir)
416 {
417     // http://crbug.com/1136238
418     ANGLE_SKIP_TEST_IF(IsWindows() && IsVulkan());
419     ASSERT_NE(CONFORMANCE_TEST_ERROR, SpotExpDirExec());
420 }
421 
TEST_P(GLES1ConformanceTest,TexDecal)422 TEST_P(GLES1ConformanceTest, TexDecal)
423 {
424     ASSERT_NE(CONFORMANCE_TEST_ERROR, TexDecalExec());
425 }
426 
TEST_P(GLES1ConformanceTest,TexPalet)427 TEST_P(GLES1ConformanceTest, TexPalet)
428 {
429     ANGLE_SKIP_TEST_IF(true);
430     ASSERT_NE(CONFORMANCE_TEST_ERROR, TexPaletExec());
431 }
432 
TEST_P(GLES1ConformanceTest,TextureEdgeClamp)433 TEST_P(GLES1ConformanceTest, TextureEdgeClamp)
434 {
435     ASSERT_NE(CONFORMANCE_TEST_ERROR, TextureEdgeClampExec());
436 }
437 
TEST_P(GLES1ConformanceTest,TriRaster)438 TEST_P(GLES1ConformanceTest, TriRaster)
439 {
440     ASSERT_NE(CONFORMANCE_TEST_ERROR, TriRasterExec());
441 }
442 
TEST_P(GLES1ConformanceTest,TriTile)443 TEST_P(GLES1ConformanceTest, TriTile)
444 {
445     ASSERT_NE(CONFORMANCE_TEST_ERROR, TriTileExec());
446 }
447 
TEST_P(GLES1ConformanceTest,VertexOrder)448 TEST_P(GLES1ConformanceTest, VertexOrder)
449 {
450     ASSERT_NE(CONFORMANCE_TEST_ERROR, VertexOrderExec());
451 }
452 
TEST_P(GLES1ConformanceTest,ViewportClamp)453 TEST_P(GLES1ConformanceTest, ViewportClamp)
454 {
455     ASSERT_NE(CONFORMANCE_TEST_ERROR, ViewportClampExec());
456 }
457 
TEST_P(GLES1ConformanceTest,XForm)458 TEST_P(GLES1ConformanceTest, XForm)
459 {
460     ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormExec());
461 }
462 
TEST_P(GLES1ConformanceTest,XFormMix)463 TEST_P(GLES1ConformanceTest, XFormMix)
464 {
465     ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormMixExec());
466 }
467 
TEST_P(GLES1ConformanceTest,XFormNormal)468 TEST_P(GLES1ConformanceTest, XFormNormal)
469 {
470     ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormNormalExec());
471 }
472 
TEST_P(GLES1ConformanceTest,XFormViewport)473 TEST_P(GLES1ConformanceTest, XFormViewport)
474 {
475     ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormViewportExec());
476 }
477 
TEST_P(GLES1ConformanceTest,XFormHomogenous)478 TEST_P(GLES1ConformanceTest, XFormHomogenous)
479 {
480     ASSERT_NE(CONFORMANCE_TEST_ERROR, XFormHomogenousExec());
481 }
482 
TEST_P(GLES1ConformanceTest,ZBClear)483 TEST_P(GLES1ConformanceTest, ZBClear)
484 {
485     // http://g.co/anglebug/3864
486     ANGLE_SKIP_TEST_IF(IsVulkan());
487     ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBClearExec());
488 }
489 
TEST_P(GLES1ConformanceTest,ZBFunc)490 TEST_P(GLES1ConformanceTest, ZBFunc)
491 {
492     ASSERT_NE(CONFORMANCE_TEST_ERROR, ZBFuncExec());
493 }
494 
TEST_P(GLES1ConformanceTest,DrawTex)495 TEST_P(GLES1ConformanceTest, DrawTex)
496 {
497     ASSERT_TRUE(IsGLExtensionEnabled("GL_OES_draw_texture"));
498     ASSERT_NE(CONFORMANCE_TEST_ERROR, DrawTexExec());
499 }
500 
TEST_P(GLES1ConformanceTest,MatrixQuery)501 TEST_P(GLES1ConformanceTest, MatrixQuery)
502 {
503     ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixQueryExec());
504 }
505 
TEST_P(GLES1ConformanceTest,BufferObject)506 TEST_P(GLES1ConformanceTest, BufferObject)
507 {
508     ASSERT_NE(CONFORMANCE_TEST_ERROR, BufferObjectExec());
509 }
510 
TEST_P(GLES1ConformanceTest,PointSizeArray)511 TEST_P(GLES1ConformanceTest, PointSizeArray)
512 {
513     ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSizeArrayExec());
514 }
515 
TEST_P(GLES1ConformanceTest,PointSprite)516 TEST_P(GLES1ConformanceTest, PointSprite)
517 {
518     ASSERT_NE(CONFORMANCE_TEST_ERROR, PointSpriteExec());
519 }
520 
TEST_P(GLES1ConformanceTest,UserClip)521 TEST_P(GLES1ConformanceTest, UserClip)
522 {
523     // "2.11 Clipping" describes the complementarity criterion, where a
524     // primitive drawn once with a particular clip plane and again with the
525     // negated version of the clip plane must not overdraw for pixels where the
526     // plane equation evaluates exactly to zero; that is, we would need to
527     // detect previously drawn fragments from one clip plane that lie exactly
528     // on the half space boundary, and avoid drawing them if the same primitive
529     // is issued next draw with a negated version of the clip plane.
530     //
531     // TODO(lfy@google.com)
532     // We can skip the test for now, or seed the test with a sufficiently nice
533     // random number so that it still test clip planes, but doesn't have any
534     // pixels exactly on half space boundaries.
535     //
536     // Proper fix would either involve a more complex scheme to track fragments
537     // on the half space boundary and discard or not next draw based on whether
538     // they are hit again, or to pass through to a hardware clip plane
539     // implementation (available in desktop GL or Vulkan)
540 
541     ANGLE_SKIP_TEST_IF(true);
542     ASSERT_NE(CONFORMANCE_TEST_ERROR, UserClipExec());
543 }
544 
TEST_P(GLES1ConformanceTest,MatrixGetTest)545 TEST_P(GLES1ConformanceTest, MatrixGetTest)
546 {
547     ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixGetTestExec());
548 }
549 
TEST_P(GLES1ConformanceTest,Gets)550 TEST_P(GLES1ConformanceTest, Gets)
551 {
552     ASSERT_NE(CONFORMANCE_TEST_ERROR, GetsExec());
553 }
554 
TEST_P(GLES1ConformanceTest,TexCombine)555 TEST_P(GLES1ConformanceTest, TexCombine)
556 {
557     ASSERT_NE(CONFORMANCE_TEST_ERROR, TexCombineExec());
558 }
559 
TEST_P(GLES1ConformanceTest,MatrixPalette)560 TEST_P(GLES1ConformanceTest, MatrixPalette)
561 {
562     ASSERT_NE(CONFORMANCE_TEST_ERROR, MatrixPaletteExec());
563 }
564 
565 ANGLE_INSTANTIATE_TEST(GLES1ConformanceTest, ES1_OPENGL(), ES1_VULKAN());
566 }  // namespace angle
567 
568 // Included here to fix a compile error due to white box tests using angle_end2end_tests_main.
RegisterContextCompatibilityTests()569 void RegisterContextCompatibilityTests() {}