1/*
2 * Copyright © 2012 Intel Corporation
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 */
23
24/**
25 * \file indirect_api.cpp
26 * Validate the generated code in indirect_init.c
27 *
28 * Tests various apsects of the dispatch table generated by
29 * \c __glXNewIndirectAPI.
30 *
31 *    * No entry in the table should be \c NULL.
32 *
33 *    * Entries in the table that correspond to "known" functions with GLX
34 *      protocol should point to the correct function.
35 *
36 *    * Entries beyond the end of the "known" part of the table (i.e., entries
37 *      that can be allocated by drivers for extensions) should point to a
38 *      no-op function.
39 *
40 *    * Entries in the table that correspond to "known" functions that lack
41 *      GLX protocol should point to a no-op function.
42 *
43 * Very few entries in the last catogory are tests.  See \c OpenGL_20_is_nop.
44 */
45
46#include <gtest/gtest.h>
47#include <GL/gl.h>
48extern "C" {
49#include "../indirect_init.h"
50#include "glapi/glapi.h"
51#include "../../mesa/main/dispatch.h"
52}
53
54static const void *nil = 0;
55
56#define EXTRA_DISPATCH 111
57
58static bool dispatch_table_size_was_queried = false;
59
60extern "C" GLuint
61_glapi_get_dispatch_table_size(void)
62{
63   dispatch_table_size_was_queried = true;
64   return _gloffset_COUNT + EXTRA_DISPATCH;
65}
66
67/**
68 * \name Indirect-rendering function stubs
69 *
70 * These are necessary so that indirect_init.c doesn't try to link with
71 * indirect.c.  Linking with indirect.c would require linking with various X
72 * libraries and a bunch of other stuff.  While this is ugly, it does simplify
73 * the build quite a bit.
74 */
75/*@{*/
76extern "C" {
77void __indirect_glAccum(void) { }
78void __indirect_glAlphaFunc(void) { }
79void __indirect_glBegin(void) { }
80void __indirect_glBitmap(void) { }
81void __indirect_glBlendFunc(void) { }
82void __indirect_glCallList(void) { }
83void __indirect_glCallLists(void) { }
84void __indirect_glClear(void) { }
85void __indirect_glClearAccum(void) { }
86void __indirect_glClearColor(void) { }
87void __indirect_glClearDepth(void) { }
88void __indirect_glClearIndex(void) { }
89void __indirect_glClearStencil(void) { }
90void __indirect_glClipPlane(void) { }
91void __indirect_glColor3b(void) { }
92void __indirect_glColor3bv(void) { }
93void __indirect_glColor3d(void) { }
94void __indirect_glColor3dv(void) { }
95void __indirect_glColor3f(void) { }
96void __indirect_glColor3fv(void) { }
97void __indirect_glColor3i(void) { }
98void __indirect_glColor3iv(void) { }
99void __indirect_glColor3s(void) { }
100void __indirect_glColor3sv(void) { }
101void __indirect_glColor3ub(void) { }
102void __indirect_glColor3ubv(void) { }
103void __indirect_glColor3ui(void) { }
104void __indirect_glColor3uiv(void) { }
105void __indirect_glColor3us(void) { }
106void __indirect_glColor3usv(void) { }
107void __indirect_glColor4b(void) { }
108void __indirect_glColor4bv(void) { }
109void __indirect_glColor4d(void) { }
110void __indirect_glColor4dv(void) { }
111void __indirect_glColor4f(void) { }
112void __indirect_glColor4fv(void) { }
113void __indirect_glColor4i(void) { }
114void __indirect_glColor4iv(void) { }
115void __indirect_glColor4s(void) { }
116void __indirect_glColor4sv(void) { }
117void __indirect_glColor4ub(void) { }
118void __indirect_glColor4ubv(void) { }
119void __indirect_glColor4ui(void) { }
120void __indirect_glColor4uiv(void) { }
121void __indirect_glColor4us(void) { }
122void __indirect_glColor4usv(void) { }
123void __indirect_glColorMask(void) { }
124void __indirect_glColorMaterial(void) { }
125void __indirect_glCopyPixels(void) { }
126void __indirect_glCullFace(void) { }
127void __indirect_glDeleteLists(void) { }
128void __indirect_glDepthFunc(void) { }
129void __indirect_glDepthMask(void) { }
130void __indirect_glDepthRange(void) { }
131void __indirect_glDisable(void) { }
132void __indirect_glDrawBuffer(void) { }
133void __indirect_glDrawPixels(void) { }
134void __indirect_glEdgeFlag(void) { }
135void __indirect_glEdgeFlagv(void) { }
136void __indirect_glEnable(void) { }
137void __indirect_glEnd(void) { }
138void __indirect_glEndList(void) { }
139void __indirect_glEvalCoord1d(void) { }
140void __indirect_glEvalCoord1dv(void) { }
141void __indirect_glEvalCoord1f(void) { }
142void __indirect_glEvalCoord1fv(void) { }
143void __indirect_glEvalCoord2d(void) { }
144void __indirect_glEvalCoord2dv(void) { }
145void __indirect_glEvalCoord2f(void) { }
146void __indirect_glEvalCoord2fv(void) { }
147void __indirect_glEvalMesh1(void) { }
148void __indirect_glEvalMesh2(void) { }
149void __indirect_glEvalPoint1(void) { }
150void __indirect_glEvalPoint2(void) { }
151void __indirect_glFeedbackBuffer(void) { }
152void __indirect_glFinish(void) { }
153void __indirect_glFlush(void) { }
154void __indirect_glFogf(void) { }
155void __indirect_glFogfv(void) { }
156void __indirect_glFogi(void) { }
157void __indirect_glFogiv(void) { }
158void __indirect_glFrontFace(void) { }
159void __indirect_glFrustum(void) { }
160void __indirect_glGenLists(void) { }
161void __indirect_glGetBooleanv(void) { }
162void __indirect_glGetClipPlane(void) { }
163void __indirect_glGetDoublev(void) { }
164void __indirect_glGetError(void) { }
165void __indirect_glGetFloatv(void) { }
166void __indirect_glGetIntegerv(void) { }
167void __indirect_glGetLightfv(void) { }
168void __indirect_glGetLightiv(void) { }
169void __indirect_glGetMapdv(void) { }
170void __indirect_glGetMapfv(void) { }
171void __indirect_glGetMapiv(void) { }
172void __indirect_glGetMaterialfv(void) { }
173void __indirect_glGetMaterialiv(void) { }
174void __indirect_glGetPixelMapfv(void) { }
175void __indirect_glGetPixelMapuiv(void) { }
176void __indirect_glGetPixelMapusv(void) { }
177void __indirect_glGetPolygonStipple(void) { }
178void __indirect_glGetString(void) { }
179void __indirect_glGetTexEnvfv(void) { }
180void __indirect_glGetTexEnviv(void) { }
181void __indirect_glGetTexGendv(void) { }
182void __indirect_glGetTexGenfv(void) { }
183void __indirect_glGetTexGeniv(void) { }
184void __indirect_glGetTexImage(void) { }
185void __indirect_glGetTexLevelParameterfv(void) { }
186void __indirect_glGetTexLevelParameteriv(void) { }
187void __indirect_glGetTexParameterfv(void) { }
188void __indirect_glGetTexParameteriv(void) { }
189void __indirect_glHint(void) { }
190void __indirect_glIndexMask(void) { }
191void __indirect_glIndexd(void) { }
192void __indirect_glIndexdv(void) { }
193void __indirect_glIndexf(void) { }
194void __indirect_glIndexfv(void) { }
195void __indirect_glIndexi(void) { }
196void __indirect_glIndexiv(void) { }
197void __indirect_glIndexs(void) { }
198void __indirect_glIndexsv(void) { }
199void __indirect_glInitNames(void) { }
200void __indirect_glIsEnabled(void) { }
201void __indirect_glIsList(void) { }
202void __indirect_glLightModelf(void) { }
203void __indirect_glLightModelfv(void) { }
204void __indirect_glLightModeli(void) { }
205void __indirect_glLightModeliv(void) { }
206void __indirect_glLightf(void) { }
207void __indirect_glLightfv(void) { }
208void __indirect_glLighti(void) { }
209void __indirect_glLightiv(void) { }
210void __indirect_glLineStipple(void) { }
211void __indirect_glLineWidth(void) { }
212void __indirect_glListBase(void) { }
213void __indirect_glLoadIdentity(void) { }
214void __indirect_glLoadMatrixd(void) { }
215void __indirect_glLoadMatrixf(void) { }
216void __indirect_glLoadName(void) { }
217void __indirect_glLogicOp(void) { }
218void __indirect_glMap1d(void) { }
219void __indirect_glMap1f(void) { }
220void __indirect_glMap2d(void) { }
221void __indirect_glMap2f(void) { }
222void __indirect_glMapGrid1d(void) { }
223void __indirect_glMapGrid1f(void) { }
224void __indirect_glMapGrid2d(void) { }
225void __indirect_glMapGrid2f(void) { }
226void __indirect_glMaterialf(void) { }
227void __indirect_glMaterialfv(void) { }
228void __indirect_glMateriali(void) { }
229void __indirect_glMaterialiv(void) { }
230void __indirect_glMatrixMode(void) { }
231void __indirect_glMultMatrixd(void) { }
232void __indirect_glMultMatrixf(void) { }
233void __indirect_glNewList(void) { }
234void __indirect_glNormal3b(void) { }
235void __indirect_glNormal3bv(void) { }
236void __indirect_glNormal3d(void) { }
237void __indirect_glNormal3dv(void) { }
238void __indirect_glNormal3f(void) { }
239void __indirect_glNormal3fv(void) { }
240void __indirect_glNormal3i(void) { }
241void __indirect_glNormal3iv(void) { }
242void __indirect_glNormal3s(void) { }
243void __indirect_glNormal3sv(void) { }
244void __indirect_glOrtho(void) { }
245void __indirect_glPassThrough(void) { }
246void __indirect_glPixelMapfv(void) { }
247void __indirect_glPixelMapuiv(void) { }
248void __indirect_glPixelMapusv(void) { }
249void __indirect_glPixelStoref(void) { }
250void __indirect_glPixelStorei(void) { }
251void __indirect_glPixelTransferf(void) { }
252void __indirect_glPixelTransferi(void) { }
253void __indirect_glPixelZoom(void) { }
254void __indirect_glPointSize(void) { }
255void __indirect_glPolygonMode(void) { }
256void __indirect_glPolygonStipple(void) { }
257void __indirect_glPopAttrib(void) { }
258void __indirect_glPopMatrix(void) { }
259void __indirect_glPopName(void) { }
260void __indirect_glPushAttrib(void) { }
261void __indirect_glPushMatrix(void) { }
262void __indirect_glPushName(void) { }
263void __indirect_glRasterPos2d(void) { }
264void __indirect_glRasterPos2dv(void) { }
265void __indirect_glRasterPos2f(void) { }
266void __indirect_glRasterPos2fv(void) { }
267void __indirect_glRasterPos2i(void) { }
268void __indirect_glRasterPos2iv(void) { }
269void __indirect_glRasterPos2s(void) { }
270void __indirect_glRasterPos2sv(void) { }
271void __indirect_glRasterPos3d(void) { }
272void __indirect_glRasterPos3dv(void) { }
273void __indirect_glRasterPos3f(void) { }
274void __indirect_glRasterPos3fv(void) { }
275void __indirect_glRasterPos3i(void) { }
276void __indirect_glRasterPos3iv(void) { }
277void __indirect_glRasterPos3s(void) { }
278void __indirect_glRasterPos3sv(void) { }
279void __indirect_glRasterPos4d(void) { }
280void __indirect_glRasterPos4dv(void) { }
281void __indirect_glRasterPos4f(void) { }
282void __indirect_glRasterPos4fv(void) { }
283void __indirect_glRasterPos4i(void) { }
284void __indirect_glRasterPos4iv(void) { }
285void __indirect_glRasterPos4s(void) { }
286void __indirect_glRasterPos4sv(void) { }
287void __indirect_glReadBuffer(void) { }
288void __indirect_glReadPixels(void) { }
289void __indirect_glRectd(void) { }
290void __indirect_glRectdv(void) { }
291void __indirect_glRectf(void) { }
292void __indirect_glRectfv(void) { }
293void __indirect_glRecti(void) { }
294void __indirect_glRectiv(void) { }
295void __indirect_glRects(void) { }
296void __indirect_glRectsv(void) { }
297void __indirect_glRenderMode(void) { }
298void __indirect_glRotated(void) { }
299void __indirect_glRotatef(void) { }
300void __indirect_glScaled(void) { }
301void __indirect_glScalef(void) { }
302void __indirect_glScissor(void) { }
303void __indirect_glSelectBuffer(void) { }
304void __indirect_glShadeModel(void) { }
305void __indirect_glStencilFunc(void) { }
306void __indirect_glStencilMask(void) { }
307void __indirect_glStencilOp(void) { }
308void __indirect_glTexCoord1d(void) { }
309void __indirect_glTexCoord1dv(void) { }
310void __indirect_glTexCoord1f(void) { }
311void __indirect_glTexCoord1fv(void) { }
312void __indirect_glTexCoord1i(void) { }
313void __indirect_glTexCoord1iv(void) { }
314void __indirect_glTexCoord1s(void) { }
315void __indirect_glTexCoord1sv(void) { }
316void __indirect_glTexCoord2d(void) { }
317void __indirect_glTexCoord2dv(void) { }
318void __indirect_glTexCoord2f(void) { }
319void __indirect_glTexCoord2fv(void) { }
320void __indirect_glTexCoord2i(void) { }
321void __indirect_glTexCoord2iv(void) { }
322void __indirect_glTexCoord2s(void) { }
323void __indirect_glTexCoord2sv(void) { }
324void __indirect_glTexCoord3d(void) { }
325void __indirect_glTexCoord3dv(void) { }
326void __indirect_glTexCoord3f(void) { }
327void __indirect_glTexCoord3fv(void) { }
328void __indirect_glTexCoord3i(void) { }
329void __indirect_glTexCoord3iv(void) { }
330void __indirect_glTexCoord3s(void) { }
331void __indirect_glTexCoord3sv(void) { }
332void __indirect_glTexCoord4d(void) { }
333void __indirect_glTexCoord4dv(void) { }
334void __indirect_glTexCoord4f(void) { }
335void __indirect_glTexCoord4fv(void) { }
336void __indirect_glTexCoord4i(void) { }
337void __indirect_glTexCoord4iv(void) { }
338void __indirect_glTexCoord4s(void) { }
339void __indirect_glTexCoord4sv(void) { }
340void __indirect_glTexEnvf(void) { }
341void __indirect_glTexEnvfv(void) { }
342void __indirect_glTexEnvi(void) { }
343void __indirect_glTexEnviv(void) { }
344void __indirect_glTexGend(void) { }
345void __indirect_glTexGendv(void) { }
346void __indirect_glTexGenf(void) { }
347void __indirect_glTexGenfv(void) { }
348void __indirect_glTexGeni(void) { }
349void __indirect_glTexGeniv(void) { }
350void __indirect_glTexImage1D(void) { }
351void __indirect_glTexImage2D(void) { }
352void __indirect_glTexParameterf(void) { }
353void __indirect_glTexParameterfv(void) { }
354void __indirect_glTexParameteri(void) { }
355void __indirect_glTexParameteriv(void) { }
356void __indirect_glTranslated(void) { }
357void __indirect_glTranslatef(void) { }
358void __indirect_glVertex2d(void) { }
359void __indirect_glVertex2dv(void) { }
360void __indirect_glVertex2f(void) { }
361void __indirect_glVertex2fv(void) { }
362void __indirect_glVertex2i(void) { }
363void __indirect_glVertex2iv(void) { }
364void __indirect_glVertex2s(void) { }
365void __indirect_glVertex2sv(void) { }
366void __indirect_glVertex3d(void) { }
367void __indirect_glVertex3dv(void) { }
368void __indirect_glVertex3f(void) { }
369void __indirect_glVertex3fv(void) { }
370void __indirect_glVertex3i(void) { }
371void __indirect_glVertex3iv(void) { }
372void __indirect_glVertex3s(void) { }
373void __indirect_glVertex3sv(void) { }
374void __indirect_glVertex4d(void) { }
375void __indirect_glVertex4dv(void) { }
376void __indirect_glVertex4f(void) { }
377void __indirect_glVertex4fv(void) { }
378void __indirect_glVertex4i(void) { }
379void __indirect_glVertex4iv(void) { }
380void __indirect_glVertex4s(void) { }
381void __indirect_glVertex4sv(void) { }
382void __indirect_glViewport(void) { }
383void __indirect_glAreTexturesResident(void) { }
384void __indirect_glArrayElement(void) { }
385void __indirect_glBindTexture(void) { }
386void __indirect_glColorPointer(void) { }
387void __indirect_glCopyTexImage1D(void) { }
388void __indirect_glCopyTexImage2D(void) { }
389void __indirect_glCopyTexSubImage1D(void) { }
390void __indirect_glCopyTexSubImage2D(void) { }
391void __indirect_glDeleteTextures(void) { }
392void __indirect_glDisableClientState(void) { }
393void __indirect_glDrawArrays(void) { }
394void __indirect_glDrawElements(void) { }
395void __indirect_glEdgeFlagPointer(void) { }
396void __indirect_glEnableClientState(void) { }
397void __indirect_glGenTextures(void) { }
398void __indirect_glGetPointerv(void) { }
399void __indirect_glIndexPointer(void) { }
400void __indirect_glIndexub(void) { }
401void __indirect_glIndexubv(void) { }
402void __indirect_glInterleavedArrays(void) { }
403void __indirect_glIsTexture(void) { }
404void __indirect_glNormalPointer(void) { }
405void __indirect_glPolygonOffset(void) { }
406void __indirect_glPopClientAttrib(void) { }
407void __indirect_glPrioritizeTextures(void) { }
408void __indirect_glPushClientAttrib(void) { }
409void __indirect_glTexCoordPointer(void) { }
410void __indirect_glTexSubImage1D(void) { }
411void __indirect_glTexSubImage2D(void) { }
412void __indirect_glVertexPointer(void) { }
413void __indirect_glBlendColor(void) { }
414void __indirect_glBlendEquation(void) { }
415void __indirect_glColorSubTable(void) { }
416void __indirect_glColorTable(void) { }
417void __indirect_glColorTableParameterfv(void) { }
418void __indirect_glColorTableParameteriv(void) { }
419void __indirect_glConvolutionFilter1D(void) { }
420void __indirect_glConvolutionFilter2D(void) { }
421void __indirect_glConvolutionParameterf(void) { }
422void __indirect_glConvolutionParameterfv(void) { }
423void __indirect_glConvolutionParameteri(void) { }
424void __indirect_glConvolutionParameteriv(void) { }
425void __indirect_glCopyColorSubTable(void) { }
426void __indirect_glCopyColorTable(void) { }
427void __indirect_glCopyConvolutionFilter1D(void) { }
428void __indirect_glCopyConvolutionFilter2D(void) { }
429void __indirect_glCopyTexSubImage3D(void) { }
430void __indirect_glDrawRangeElements(void) { }
431void __indirect_glGetColorTable(void) { }
432void __indirect_glGetColorTableParameterfv(void) { }
433void __indirect_glGetColorTableParameteriv(void) { }
434void __indirect_glGetConvolutionFilter(void) { }
435void __indirect_glGetConvolutionParameterfv(void) { }
436void __indirect_glGetConvolutionParameteriv(void) { }
437void __indirect_glGetHistogram(void) { }
438void __indirect_glGetHistogramParameterfv(void) { }
439void __indirect_glGetHistogramParameteriv(void) { }
440void __indirect_glGetMinmax(void) { }
441void __indirect_glGetMinmaxParameterfv(void) { }
442void __indirect_glGetMinmaxParameteriv(void) { }
443void __indirect_glGetSeparableFilter(void) { }
444void __indirect_glHistogram(void) { }
445void __indirect_glMinmax(void) { }
446void __indirect_glResetHistogram(void) { }
447void __indirect_glResetMinmax(void) { }
448void __indirect_glSeparableFilter2D(void) { }
449void __indirect_glTexImage3D(void) { }
450void __indirect_glTexSubImage3D(void) { }
451void __indirect_glActiveTextureARB(void) { }
452void __indirect_glClientActiveTextureARB(void) { }
453void __indirect_glMultiTexCoord1dARB(void) { }
454void __indirect_glMultiTexCoord1dvARB(void) { }
455void __indirect_glMultiTexCoord1fARB(void) { }
456void __indirect_glMultiTexCoord1fvARB(void) { }
457void __indirect_glMultiTexCoord1iARB(void) { }
458void __indirect_glMultiTexCoord1ivARB(void) { }
459void __indirect_glMultiTexCoord1sARB(void) { }
460void __indirect_glMultiTexCoord1svARB(void) { }
461void __indirect_glMultiTexCoord2dARB(void) { }
462void __indirect_glMultiTexCoord2dvARB(void) { }
463void __indirect_glMultiTexCoord2fARB(void) { }
464void __indirect_glMultiTexCoord2fvARB(void) { }
465void __indirect_glMultiTexCoord2iARB(void) { }
466void __indirect_glMultiTexCoord2ivARB(void) { }
467void __indirect_glMultiTexCoord2sARB(void) { }
468void __indirect_glMultiTexCoord2svARB(void) { }
469void __indirect_glMultiTexCoord3dARB(void) { }
470void __indirect_glMultiTexCoord3dvARB(void) { }
471void __indirect_glMultiTexCoord3fARB(void) { }
472void __indirect_glMultiTexCoord3fvARB(void) { }
473void __indirect_glMultiTexCoord3iARB(void) { }
474void __indirect_glMultiTexCoord3ivARB(void) { }
475void __indirect_glMultiTexCoord3sARB(void) { }
476void __indirect_glMultiTexCoord3svARB(void) { }
477void __indirect_glMultiTexCoord4dARB(void) { }
478void __indirect_glMultiTexCoord4dvARB(void) { }
479void __indirect_glMultiTexCoord4fARB(void) { }
480void __indirect_glMultiTexCoord4fvARB(void) { }
481void __indirect_glMultiTexCoord4iARB(void) { }
482void __indirect_glMultiTexCoord4ivARB(void) { }
483void __indirect_glMultiTexCoord4sARB(void) { }
484void __indirect_glMultiTexCoord4svARB(void) { }
485void __indirect_glLoadTransposeMatrixdARB(void) { }
486void __indirect_glLoadTransposeMatrixfARB(void) { }
487void __indirect_glMultTransposeMatrixdARB(void) { }
488void __indirect_glMultTransposeMatrixfARB(void) { }
489void __indirect_glSampleCoverageARB(void) { }
490void __indirect_glCompressedTexImage1DARB(void) { }
491void __indirect_glCompressedTexImage2DARB(void) { }
492void __indirect_glCompressedTexImage3DARB(void) { }
493void __indirect_glCompressedTexSubImage1DARB(void) { }
494void __indirect_glCompressedTexSubImage2DARB(void) { }
495void __indirect_glCompressedTexSubImage3DARB(void) { }
496void __indirect_glGetCompressedTexImageARB(void) { }
497void __indirect_glDisableVertexAttribArrayARB(void) { }
498void __indirect_glEnableVertexAttribArrayARB(void) { }
499void __indirect_glGetProgramEnvParameterdvARB(void) { }
500void __indirect_glGetProgramEnvParameterfvARB(void) { }
501void __indirect_glGetProgramLocalParameterdvARB(void) { }
502void __indirect_glGetProgramLocalParameterfvARB(void) { }
503void __indirect_glGetProgramStringARB(void) { }
504void __indirect_glGetProgramivARB(void) { }
505void __indirect_glGetVertexAttribdvARB(void) { }
506void __indirect_glGetVertexAttribfvARB(void) { }
507void __indirect_glGetVertexAttribivARB(void) { }
508void __indirect_glProgramEnvParameter4dARB(void) { }
509void __indirect_glProgramEnvParameter4dvARB(void) { }
510void __indirect_glProgramEnvParameter4fARB(void) { }
511void __indirect_glProgramEnvParameter4fvARB(void) { }
512void __indirect_glProgramLocalParameter4dARB(void) { }
513void __indirect_glProgramLocalParameter4dvARB(void) { }
514void __indirect_glProgramLocalParameter4fARB(void) { }
515void __indirect_glProgramLocalParameter4fvARB(void) { }
516void __indirect_glProgramStringARB(void) { }
517void __indirect_glVertexAttrib1dARB(void) { }
518void __indirect_glVertexAttrib1dvARB(void) { }
519void __indirect_glVertexAttrib1fARB(void) { }
520void __indirect_glVertexAttrib1fvARB(void) { }
521void __indirect_glVertexAttrib1sARB(void) { }
522void __indirect_glVertexAttrib1svARB(void) { }
523void __indirect_glVertexAttrib2dARB(void) { }
524void __indirect_glVertexAttrib2dvARB(void) { }
525void __indirect_glVertexAttrib2fARB(void) { }
526void __indirect_glVertexAttrib2fvARB(void) { }
527void __indirect_glVertexAttrib2sARB(void) { }
528void __indirect_glVertexAttrib2svARB(void) { }
529void __indirect_glVertexAttrib3dARB(void) { }
530void __indirect_glVertexAttrib3dvARB(void) { }
531void __indirect_glVertexAttrib3fARB(void) { }
532void __indirect_glVertexAttrib3fvARB(void) { }
533void __indirect_glVertexAttrib3sARB(void) { }
534void __indirect_glVertexAttrib3svARB(void) { }
535void __indirect_glVertexAttrib4NbvARB(void) { }
536void __indirect_glVertexAttrib4NivARB(void) { }
537void __indirect_glVertexAttrib4NsvARB(void) { }
538void __indirect_glVertexAttrib4NubARB(void) { }
539void __indirect_glVertexAttrib4NubvARB(void) { }
540void __indirect_glVertexAttrib4NuivARB(void) { }
541void __indirect_glVertexAttrib4NusvARB(void) { }
542void __indirect_glVertexAttrib4bvARB(void) { }
543void __indirect_glVertexAttrib4dARB(void) { }
544void __indirect_glVertexAttrib4dvARB(void) { }
545void __indirect_glVertexAttrib4fARB(void) { }
546void __indirect_glVertexAttrib4fvARB(void) { }
547void __indirect_glVertexAttrib4ivARB(void) { }
548void __indirect_glVertexAttrib4sARB(void) { }
549void __indirect_glVertexAttrib4svARB(void) { }
550void __indirect_glVertexAttrib4ubvARB(void) { }
551void __indirect_glVertexAttrib4uivARB(void) { }
552void __indirect_glVertexAttrib4usvARB(void) { }
553void __indirect_glVertexAttribPointerARB(void) { }
554void __indirect_glBeginQueryARB(void) { }
555void __indirect_glDeleteQueriesARB(void) { }
556void __indirect_glEndQueryARB(void) { }
557void __indirect_glGenQueriesARB(void) { }
558void __indirect_glGetQueryObjectivARB(void) { }
559void __indirect_glGetQueryObjectuivARB(void) { }
560void __indirect_glGetQueryivARB(void) { }
561void __indirect_glIsQueryARB(void) { }
562void __indirect_glDrawBuffersARB(void) { }
563void __indirect_glClampColorARB(void) { }
564void __indirect_glRenderbufferStorageMultisample(void) { }
565void __indirect_glSampleMaskSGIS(void) { }
566void __indirect_glSamplePatternSGIS(void) { }
567void __indirect_glColorPointerEXT(void) { }
568void __indirect_glEdgeFlagPointerEXT(void) { }
569void __indirect_glIndexPointerEXT(void) { }
570void __indirect_glNormalPointerEXT(void) { }
571void __indirect_glTexCoordPointerEXT(void) { }
572void __indirect_glVertexPointerEXT(void) { }
573void __indirect_glPointParameterfEXT(void) { }
574void __indirect_glPointParameterfvEXT(void) { }
575void __indirect_glSecondaryColor3bEXT(void) { }
576void __indirect_glSecondaryColor3bvEXT(void) { }
577void __indirect_glSecondaryColor3dEXT(void) { }
578void __indirect_glSecondaryColor3dvEXT(void) { }
579void __indirect_glSecondaryColor3fEXT(void) { }
580void __indirect_glSecondaryColor3fvEXT(void) { }
581void __indirect_glSecondaryColor3iEXT(void) { }
582void __indirect_glSecondaryColor3ivEXT(void) { }
583void __indirect_glSecondaryColor3sEXT(void) { }
584void __indirect_glSecondaryColor3svEXT(void) { }
585void __indirect_glSecondaryColor3ubEXT(void) { }
586void __indirect_glSecondaryColor3ubvEXT(void) { }
587void __indirect_glSecondaryColor3uiEXT(void) { }
588void __indirect_glSecondaryColor3uivEXT(void) { }
589void __indirect_glSecondaryColor3usEXT(void) { }
590void __indirect_glSecondaryColor3usvEXT(void) { }
591void __indirect_glSecondaryColorPointerEXT(void) { }
592void __indirect_glMultiDrawArraysEXT(void) { }
593void __indirect_glMultiDrawElementsEXT(void) { }
594void __indirect_glFogCoordPointerEXT(void) { }
595void __indirect_glFogCoorddEXT(void) { }
596void __indirect_glFogCoorddvEXT(void) { }
597void __indirect_glFogCoordfEXT(void) { }
598void __indirect_glFogCoordfvEXT(void) { }
599void __indirect_glBlendFuncSeparateEXT(void) { }
600void __indirect_glWindowPos2dMESA(void) { }
601void __indirect_glWindowPos2dvMESA(void) { }
602void __indirect_glWindowPos2fMESA(void) { }
603void __indirect_glWindowPos2fvMESA(void) { }
604void __indirect_glWindowPos2iMESA(void) { }
605void __indirect_glWindowPos2ivMESA(void) { }
606void __indirect_glWindowPos2sMESA(void) { }
607void __indirect_glWindowPos2svMESA(void) { }
608void __indirect_glWindowPos3dMESA(void) { }
609void __indirect_glWindowPos3dvMESA(void) { }
610void __indirect_glWindowPos3fMESA(void) { }
611void __indirect_glWindowPos3fvMESA(void) { }
612void __indirect_glWindowPos3iMESA(void) { }
613void __indirect_glWindowPos3ivMESA(void) { }
614void __indirect_glWindowPos3sMESA(void) { }
615void __indirect_glWindowPos3svMESA(void) { }
616void __indirect_glAreProgramsResidentNV(void) { }
617void __indirect_glBindProgramNV(void) { }
618void __indirect_glDeleteProgramsNV(void) { }
619void __indirect_glExecuteProgramNV(void) { }
620void __indirect_glGenProgramsNV(void) { }
621void __indirect_glGetProgramParameterdvNV(void) { }
622void __indirect_glGetProgramParameterfvNV(void) { }
623void __indirect_glGetProgramStringNV(void) { }
624void __indirect_glGetProgramivNV(void) { }
625void __indirect_glGetTrackMatrixivNV(void) { }
626void __indirect_glGetVertexAttribPointervNV(void) { }
627void __indirect_glGetVertexAttribdvNV(void) { }
628void __indirect_glGetVertexAttribfvNV(void) { }
629void __indirect_glGetVertexAttribivNV(void) { }
630void __indirect_glIsProgramNV(void) { }
631void __indirect_glLoadProgramNV(void) { }
632void __indirect_glProgramParameters4dvNV(void) { }
633void __indirect_glProgramParameters4fvNV(void) { }
634void __indirect_glRequestResidentProgramsNV(void) { }
635void __indirect_glTrackMatrixNV(void) { }
636void __indirect_glVertexAttrib1dNV(void) { }
637void __indirect_glVertexAttrib1dvNV(void) { }
638void __indirect_glVertexAttrib1fNV(void) { }
639void __indirect_glVertexAttrib1fvNV(void) { }
640void __indirect_glVertexAttrib1sNV(void) { }
641void __indirect_glVertexAttrib1svNV(void) { }
642void __indirect_glVertexAttrib2dNV(void) { }
643void __indirect_glVertexAttrib2dvNV(void) { }
644void __indirect_glVertexAttrib2fNV(void) { }
645void __indirect_glVertexAttrib2fvNV(void) { }
646void __indirect_glVertexAttrib2sNV(void) { }
647void __indirect_glVertexAttrib2svNV(void) { }
648void __indirect_glVertexAttrib3dNV(void) { }
649void __indirect_glVertexAttrib3dvNV(void) { }
650void __indirect_glVertexAttrib3fNV(void) { }
651void __indirect_glVertexAttrib3fvNV(void) { }
652void __indirect_glVertexAttrib3sNV(void) { }
653void __indirect_glVertexAttrib3svNV(void) { }
654void __indirect_glVertexAttrib4dNV(void) { }
655void __indirect_glVertexAttrib4dvNV(void) { }
656void __indirect_glVertexAttrib4fNV(void) { }
657void __indirect_glVertexAttrib4fvNV(void) { }
658void __indirect_glVertexAttrib4sNV(void) { }
659void __indirect_glVertexAttrib4svNV(void) { }
660void __indirect_glVertexAttrib4ubNV(void) { }
661void __indirect_glVertexAttrib4ubvNV(void) { }
662void __indirect_glVertexAttribPointerNV(void) { }
663void __indirect_glVertexAttribs1dvNV(void) { }
664void __indirect_glVertexAttribs1fvNV(void) { }
665void __indirect_glVertexAttribs1svNV(void) { }
666void __indirect_glVertexAttribs2dvNV(void) { }
667void __indirect_glVertexAttribs2fvNV(void) { }
668void __indirect_glVertexAttribs2svNV(void) { }
669void __indirect_glVertexAttribs3dvNV(void) { }
670void __indirect_glVertexAttribs3fvNV(void) { }
671void __indirect_glVertexAttribs3svNV(void) { }
672void __indirect_glVertexAttribs4dvNV(void) { }
673void __indirect_glVertexAttribs4fvNV(void) { }
674void __indirect_glVertexAttribs4svNV(void) { }
675void __indirect_glVertexAttribs4ubvNV(void) { }
676void __indirect_glPointParameteriNV(void) { }
677void __indirect_glPointParameterivNV(void) { }
678void __indirect_glActiveStencilFaceEXT(void) { }
679void __indirect_glGetProgramNamedParameterdvNV(void) { }
680void __indirect_glGetProgramNamedParameterfvNV(void) { }
681void __indirect_glProgramNamedParameter4dNV(void) { }
682void __indirect_glProgramNamedParameter4dvNV(void) { }
683void __indirect_glProgramNamedParameter4fNV(void) { }
684void __indirect_glProgramNamedParameter4fvNV(void) { }
685void __indirect_glBlendEquationSeparateEXT(void) { }
686void __indirect_glBindFramebufferEXT(void) { }
687void __indirect_glBindRenderbufferEXT(void) { }
688void __indirect_glCheckFramebufferStatusEXT(void) { }
689void __indirect_glDeleteFramebuffersEXT(void) { }
690void __indirect_glDeleteRenderbuffersEXT(void) { }
691void __indirect_glFramebufferRenderbufferEXT(void) { }
692void __indirect_glFramebufferTexture1DEXT(void) { }
693void __indirect_glFramebufferTexture2DEXT(void) { }
694void __indirect_glFramebufferTexture3DEXT(void) { }
695void __indirect_glGenFramebuffersEXT(void) { }
696void __indirect_glGenRenderbuffersEXT(void) { }
697void __indirect_glGenerateMipmapEXT(void) { }
698void __indirect_glGetFramebufferAttachmentParameterivEXT(void) { }
699void __indirect_glGetRenderbufferParameterivEXT(void) { }
700void __indirect_glIsFramebufferEXT(void) { }
701void __indirect_glIsRenderbufferEXT(void) { }
702void __indirect_glRenderbufferStorageEXT(void) { }
703void __indirect_glBlitFramebufferEXT(void) { }
704void __indirect_glFramebufferTextureLayerEXT(void) { }
705}
706/*@}*/
707
708class IndirectAPI : public ::testing::Test {
709public:
710   virtual void SetUp();
711   virtual void TearDown();
712
713   _glapi_proc *table;
714};
715
716void
717IndirectAPI::SetUp()
718{
719   this->table = (_glapi_proc *) __glXNewIndirectAPI();
720}
721
722void
723IndirectAPI::TearDown()
724{
725   free(this->table);
726   this->table = NULL;
727}
728
729TEST_F(IndirectAPI, DispatchTableSizeWasQueried)
730{
731   dispatch_table_size_was_queried = false;
732
733   /* __glXNewIndirectAPI determines the size of the dispatch table by calling
734    * _glapi_get_dispatch_table_size.  Our stub version of this function sets
735    * a flag so that we can detect that __glXNewIndirectAPI called it.
736    */
737   EXPECT_FALSE(dispatch_table_size_was_queried);
738   _glapi_table *table = __glXNewIndirectAPI();
739   EXPECT_TRUE(dispatch_table_size_was_queried);
740
741   /* Since a second dispatch table was created, it must be freed by hand.
742    */
743   free(table);
744}
745
746TEST_F(IndirectAPI, NoNullEntries)
747{
748   const unsigned entries = _glapi_get_dispatch_table_size();
749
750   /* There should not be any NULL entries in the dispatch table.  All entires
751    * should either point to a real implementation or to a no-op function.
752    */
753   for (unsigned i = 0; i < entries; i++) {
754      EXPECT_NE(nil, table[i]);
755   }
756}
757
758TEST_F(IndirectAPI, OpenGL_10)
759{
760   EXPECT_EQ((_glapi_proc) __indirect_glAccum, table[_gloffset_Accum]);
761   EXPECT_EQ((_glapi_proc) __indirect_glAlphaFunc, table[_gloffset_AlphaFunc]);
762   EXPECT_EQ((_glapi_proc) __indirect_glBegin, table[_gloffset_Begin]);
763   EXPECT_EQ((_glapi_proc) __indirect_glBitmap, table[_gloffset_Bitmap]);
764   EXPECT_EQ((_glapi_proc) __indirect_glBlendFunc, table[_gloffset_BlendFunc]);
765   EXPECT_EQ((_glapi_proc) __indirect_glCallList, table[_gloffset_CallList]);
766   EXPECT_EQ((_glapi_proc) __indirect_glCallLists, table[_gloffset_CallLists]);
767   EXPECT_EQ((_glapi_proc) __indirect_glClear, table[_gloffset_Clear]);
768   EXPECT_EQ((_glapi_proc) __indirect_glClearAccum, table[_gloffset_ClearAccum]);
769   EXPECT_EQ((_glapi_proc) __indirect_glClearColor, table[_gloffset_ClearColor]);
770   EXPECT_EQ((_glapi_proc) __indirect_glClearDepth, table[_gloffset_ClearDepth]);
771   EXPECT_EQ((_glapi_proc) __indirect_glClearIndex, table[_gloffset_ClearIndex]);
772   EXPECT_EQ((_glapi_proc) __indirect_glClearStencil, table[_gloffset_ClearStencil]);
773   EXPECT_EQ((_glapi_proc) __indirect_glClipPlane, table[_gloffset_ClipPlane]);
774   EXPECT_EQ((_glapi_proc) __indirect_glColor3b, table[_gloffset_Color3b]);
775   EXPECT_EQ((_glapi_proc) __indirect_glColor3bv, table[_gloffset_Color3bv]);
776   EXPECT_EQ((_glapi_proc) __indirect_glColor3d, table[_gloffset_Color3d]);
777   EXPECT_EQ((_glapi_proc) __indirect_glColor3dv, table[_gloffset_Color3dv]);
778   EXPECT_EQ((_glapi_proc) __indirect_glColor3f, table[_gloffset_Color3f]);
779   EXPECT_EQ((_glapi_proc) __indirect_glColor3fv, table[_gloffset_Color3fv]);
780   EXPECT_EQ((_glapi_proc) __indirect_glColor3i, table[_gloffset_Color3i]);
781   EXPECT_EQ((_glapi_proc) __indirect_glColor3iv, table[_gloffset_Color3iv]);
782   EXPECT_EQ((_glapi_proc) __indirect_glColor3s, table[_gloffset_Color3s]);
783   EXPECT_EQ((_glapi_proc) __indirect_glColor3sv, table[_gloffset_Color3sv]);
784   EXPECT_EQ((_glapi_proc) __indirect_glColor3ub, table[_gloffset_Color3ub]);
785   EXPECT_EQ((_glapi_proc) __indirect_glColor3ubv, table[_gloffset_Color3ubv]);
786   EXPECT_EQ((_glapi_proc) __indirect_glColor3ui, table[_gloffset_Color3ui]);
787   EXPECT_EQ((_glapi_proc) __indirect_glColor3uiv, table[_gloffset_Color3uiv]);
788   EXPECT_EQ((_glapi_proc) __indirect_glColor3us, table[_gloffset_Color3us]);
789   EXPECT_EQ((_glapi_proc) __indirect_glColor3usv, table[_gloffset_Color3usv]);
790   EXPECT_EQ((_glapi_proc) __indirect_glColor4b, table[_gloffset_Color4b]);
791   EXPECT_EQ((_glapi_proc) __indirect_glColor4bv, table[_gloffset_Color4bv]);
792   EXPECT_EQ((_glapi_proc) __indirect_glColor4d, table[_gloffset_Color4d]);
793   EXPECT_EQ((_glapi_proc) __indirect_glColor4dv, table[_gloffset_Color4dv]);
794   EXPECT_EQ((_glapi_proc) __indirect_glColor4f, table[_gloffset_Color4f]);
795   EXPECT_EQ((_glapi_proc) __indirect_glColor4fv, table[_gloffset_Color4fv]);
796   EXPECT_EQ((_glapi_proc) __indirect_glColor4i, table[_gloffset_Color4i]);
797   EXPECT_EQ((_glapi_proc) __indirect_glColor4iv, table[_gloffset_Color4iv]);
798   EXPECT_EQ((_glapi_proc) __indirect_glColor4s, table[_gloffset_Color4s]);
799   EXPECT_EQ((_glapi_proc) __indirect_glColor4sv, table[_gloffset_Color4sv]);
800   EXPECT_EQ((_glapi_proc) __indirect_glColor4ub, table[_gloffset_Color4ub]);
801   EXPECT_EQ((_glapi_proc) __indirect_glColor4ubv, table[_gloffset_Color4ubv]);
802   EXPECT_EQ((_glapi_proc) __indirect_glColor4ui, table[_gloffset_Color4ui]);
803   EXPECT_EQ((_glapi_proc) __indirect_glColor4uiv, table[_gloffset_Color4uiv]);
804   EXPECT_EQ((_glapi_proc) __indirect_glColor4us, table[_gloffset_Color4us]);
805   EXPECT_EQ((_glapi_proc) __indirect_glColor4usv, table[_gloffset_Color4usv]);
806   EXPECT_EQ((_glapi_proc) __indirect_glColorMask, table[_gloffset_ColorMask]);
807   EXPECT_EQ((_glapi_proc) __indirect_glColorMaterial, table[_gloffset_ColorMaterial]);
808   EXPECT_EQ((_glapi_proc) __indirect_glCopyPixels, table[_gloffset_CopyPixels]);
809   EXPECT_EQ((_glapi_proc) __indirect_glCullFace, table[_gloffset_CullFace]);
810   EXPECT_EQ((_glapi_proc) __indirect_glDeleteLists, table[_gloffset_DeleteLists]);
811   EXPECT_EQ((_glapi_proc) __indirect_glDepthFunc, table[_gloffset_DepthFunc]);
812   EXPECT_EQ((_glapi_proc) __indirect_glDepthMask, table[_gloffset_DepthMask]);
813   EXPECT_EQ((_glapi_proc) __indirect_glDepthRange, table[_gloffset_DepthRange]);
814   EXPECT_EQ((_glapi_proc) __indirect_glDisable, table[_gloffset_Disable]);
815   EXPECT_EQ((_glapi_proc) __indirect_glDrawBuffer, table[_gloffset_DrawBuffer]);
816   EXPECT_EQ((_glapi_proc) __indirect_glDrawPixels, table[_gloffset_DrawPixels]);
817   EXPECT_EQ((_glapi_proc) __indirect_glEdgeFlag, table[_gloffset_EdgeFlag]);
818   EXPECT_EQ((_glapi_proc) __indirect_glEdgeFlagv, table[_gloffset_EdgeFlagv]);
819   EXPECT_EQ((_glapi_proc) __indirect_glEnable, table[_gloffset_Enable]);
820   EXPECT_EQ((_glapi_proc) __indirect_glEnd, table[_gloffset_End]);
821   EXPECT_EQ((_glapi_proc) __indirect_glEndList, table[_gloffset_EndList]);
822   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord1d, table[_gloffset_EvalCoord1d]);
823   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord1dv, table[_gloffset_EvalCoord1dv]);
824   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord1f, table[_gloffset_EvalCoord1f]);
825   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord1fv, table[_gloffset_EvalCoord1fv]);
826   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord2d, table[_gloffset_EvalCoord2d]);
827   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord2dv, table[_gloffset_EvalCoord2dv]);
828   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord2f, table[_gloffset_EvalCoord2f]);
829   EXPECT_EQ((_glapi_proc) __indirect_glEvalCoord2fv, table[_gloffset_EvalCoord2fv]);
830   EXPECT_EQ((_glapi_proc) __indirect_glEvalMesh1, table[_gloffset_EvalMesh1]);
831   EXPECT_EQ((_glapi_proc) __indirect_glEvalMesh2, table[_gloffset_EvalMesh2]);
832   EXPECT_EQ((_glapi_proc) __indirect_glEvalPoint1, table[_gloffset_EvalPoint1]);
833   EXPECT_EQ((_glapi_proc) __indirect_glEvalPoint2, table[_gloffset_EvalPoint2]);
834   EXPECT_EQ((_glapi_proc) __indirect_glFeedbackBuffer, table[_gloffset_FeedbackBuffer]);
835   EXPECT_EQ((_glapi_proc) __indirect_glFinish, table[_gloffset_Finish]);
836   EXPECT_EQ((_glapi_proc) __indirect_glFlush, table[_gloffset_Flush]);
837   EXPECT_EQ((_glapi_proc) __indirect_glFogf, table[_gloffset_Fogf]);
838   EXPECT_EQ((_glapi_proc) __indirect_glFogfv, table[_gloffset_Fogfv]);
839   EXPECT_EQ((_glapi_proc) __indirect_glFogi, table[_gloffset_Fogi]);
840   EXPECT_EQ((_glapi_proc) __indirect_glFogiv, table[_gloffset_Fogiv]);
841   EXPECT_EQ((_glapi_proc) __indirect_glFrontFace, table[_gloffset_FrontFace]);
842   EXPECT_EQ((_glapi_proc) __indirect_glFrustum, table[_gloffset_Frustum]);
843   EXPECT_EQ((_glapi_proc) __indirect_glGenLists, table[_gloffset_GenLists]);
844   EXPECT_EQ((_glapi_proc) __indirect_glGetBooleanv, table[_gloffset_GetBooleanv]);
845   EXPECT_EQ((_glapi_proc) __indirect_glGetClipPlane, table[_gloffset_GetClipPlane]);
846   EXPECT_EQ((_glapi_proc) __indirect_glGetDoublev, table[_gloffset_GetDoublev]);
847   EXPECT_EQ((_glapi_proc) __indirect_glGetError, table[_gloffset_GetError]);
848   EXPECT_EQ((_glapi_proc) __indirect_glGetFloatv, table[_gloffset_GetFloatv]);
849   EXPECT_EQ((_glapi_proc) __indirect_glGetIntegerv, table[_gloffset_GetIntegerv]);
850   EXPECT_EQ((_glapi_proc) __indirect_glGetLightfv, table[_gloffset_GetLightfv]);
851   EXPECT_EQ((_glapi_proc) __indirect_glGetLightiv, table[_gloffset_GetLightiv]);
852   EXPECT_EQ((_glapi_proc) __indirect_glGetMapdv, table[_gloffset_GetMapdv]);
853   EXPECT_EQ((_glapi_proc) __indirect_glGetMapfv, table[_gloffset_GetMapfv]);
854   EXPECT_EQ((_glapi_proc) __indirect_glGetMapiv, table[_gloffset_GetMapiv]);
855   EXPECT_EQ((_glapi_proc) __indirect_glGetMaterialfv, table[_gloffset_GetMaterialfv]);
856   EXPECT_EQ((_glapi_proc) __indirect_glGetMaterialiv, table[_gloffset_GetMaterialiv]);
857   EXPECT_EQ((_glapi_proc) __indirect_glGetPixelMapfv, table[_gloffset_GetPixelMapfv]);
858   EXPECT_EQ((_glapi_proc) __indirect_glGetPixelMapuiv, table[_gloffset_GetPixelMapuiv]);
859   EXPECT_EQ((_glapi_proc) __indirect_glGetPixelMapusv, table[_gloffset_GetPixelMapusv]);
860   EXPECT_EQ((_glapi_proc) __indirect_glGetPolygonStipple, table[_gloffset_GetPolygonStipple]);
861   EXPECT_EQ((_glapi_proc) __indirect_glGetString, table[_gloffset_GetString]);
862   EXPECT_EQ((_glapi_proc) __indirect_glGetTexEnvfv, table[_gloffset_GetTexEnvfv]);
863   EXPECT_EQ((_glapi_proc) __indirect_glGetTexEnviv, table[_gloffset_GetTexEnviv]);
864   EXPECT_EQ((_glapi_proc) __indirect_glGetTexGendv, table[_gloffset_GetTexGendv]);
865   EXPECT_EQ((_glapi_proc) __indirect_glGetTexGenfv, table[_gloffset_GetTexGenfv]);
866   EXPECT_EQ((_glapi_proc) __indirect_glGetTexGeniv, table[_gloffset_GetTexGeniv]);
867   EXPECT_EQ((_glapi_proc) __indirect_glGetTexImage, table[_gloffset_GetTexImage]);
868   EXPECT_EQ((_glapi_proc) __indirect_glGetTexLevelParameterfv, table[_gloffset_GetTexLevelParameterfv]);
869   EXPECT_EQ((_glapi_proc) __indirect_glGetTexLevelParameteriv, table[_gloffset_GetTexLevelParameteriv]);
870   EXPECT_EQ((_glapi_proc) __indirect_glGetTexParameterfv, table[_gloffset_GetTexParameterfv]);
871   EXPECT_EQ((_glapi_proc) __indirect_glGetTexParameteriv, table[_gloffset_GetTexParameteriv]);
872   EXPECT_EQ((_glapi_proc) __indirect_glHint, table[_gloffset_Hint]);
873   EXPECT_EQ((_glapi_proc) __indirect_glIndexMask, table[_gloffset_IndexMask]);
874   EXPECT_EQ((_glapi_proc) __indirect_glIndexd, table[_gloffset_Indexd]);
875   EXPECT_EQ((_glapi_proc) __indirect_glIndexdv, table[_gloffset_Indexdv]);
876   EXPECT_EQ((_glapi_proc) __indirect_glIndexf, table[_gloffset_Indexf]);
877   EXPECT_EQ((_glapi_proc) __indirect_glIndexfv, table[_gloffset_Indexfv]);
878   EXPECT_EQ((_glapi_proc) __indirect_glIndexi, table[_gloffset_Indexi]);
879   EXPECT_EQ((_glapi_proc) __indirect_glIndexiv, table[_gloffset_Indexiv]);
880   EXPECT_EQ((_glapi_proc) __indirect_glIndexs, table[_gloffset_Indexs]);
881   EXPECT_EQ((_glapi_proc) __indirect_glIndexsv, table[_gloffset_Indexsv]);
882   EXPECT_EQ((_glapi_proc) __indirect_glInitNames, table[_gloffset_InitNames]);
883   EXPECT_EQ((_glapi_proc) __indirect_glIsEnabled, table[_gloffset_IsEnabled]);
884   EXPECT_EQ((_glapi_proc) __indirect_glIsList, table[_gloffset_IsList]);
885   EXPECT_EQ((_glapi_proc) __indirect_glLightModelf, table[_gloffset_LightModelf]);
886   EXPECT_EQ((_glapi_proc) __indirect_glLightModelfv, table[_gloffset_LightModelfv]);
887   EXPECT_EQ((_glapi_proc) __indirect_glLightModeli, table[_gloffset_LightModeli]);
888   EXPECT_EQ((_glapi_proc) __indirect_glLightModeliv, table[_gloffset_LightModeliv]);
889   EXPECT_EQ((_glapi_proc) __indirect_glLightf, table[_gloffset_Lightf]);
890   EXPECT_EQ((_glapi_proc) __indirect_glLightfv, table[_gloffset_Lightfv]);
891   EXPECT_EQ((_glapi_proc) __indirect_glLighti, table[_gloffset_Lighti]);
892   EXPECT_EQ((_glapi_proc) __indirect_glLightiv, table[_gloffset_Lightiv]);
893   EXPECT_EQ((_glapi_proc) __indirect_glLineStipple, table[_gloffset_LineStipple]);
894   EXPECT_EQ((_glapi_proc) __indirect_glLineWidth, table[_gloffset_LineWidth]);
895   EXPECT_EQ((_glapi_proc) __indirect_glListBase, table[_gloffset_ListBase]);
896   EXPECT_EQ((_glapi_proc) __indirect_glLoadIdentity, table[_gloffset_LoadIdentity]);
897   EXPECT_EQ((_glapi_proc) __indirect_glLoadMatrixd, table[_gloffset_LoadMatrixd]);
898   EXPECT_EQ((_glapi_proc) __indirect_glLoadMatrixf, table[_gloffset_LoadMatrixf]);
899   EXPECT_EQ((_glapi_proc) __indirect_glLoadName, table[_gloffset_LoadName]);
900   EXPECT_EQ((_glapi_proc) __indirect_glLogicOp, table[_gloffset_LogicOp]);
901   EXPECT_EQ((_glapi_proc) __indirect_glMap1d, table[_gloffset_Map1d]);
902   EXPECT_EQ((_glapi_proc) __indirect_glMap1f, table[_gloffset_Map1f]);
903   EXPECT_EQ((_glapi_proc) __indirect_glMap2d, table[_gloffset_Map2d]);
904   EXPECT_EQ((_glapi_proc) __indirect_glMap2f, table[_gloffset_Map2f]);
905   EXPECT_EQ((_glapi_proc) __indirect_glMapGrid1d, table[_gloffset_MapGrid1d]);
906   EXPECT_EQ((_glapi_proc) __indirect_glMapGrid1f, table[_gloffset_MapGrid1f]);
907   EXPECT_EQ((_glapi_proc) __indirect_glMapGrid2d, table[_gloffset_MapGrid2d]);
908   EXPECT_EQ((_glapi_proc) __indirect_glMapGrid2f, table[_gloffset_MapGrid2f]);
909   EXPECT_EQ((_glapi_proc) __indirect_glMaterialf, table[_gloffset_Materialf]);
910   EXPECT_EQ((_glapi_proc) __indirect_glMaterialfv, table[_gloffset_Materialfv]);
911   EXPECT_EQ((_glapi_proc) __indirect_glMateriali, table[_gloffset_Materiali]);
912   EXPECT_EQ((_glapi_proc) __indirect_glMaterialiv, table[_gloffset_Materialiv]);
913   EXPECT_EQ((_glapi_proc) __indirect_glMatrixMode, table[_gloffset_MatrixMode]);
914   EXPECT_EQ((_glapi_proc) __indirect_glMultMatrixd, table[_gloffset_MultMatrixd]);
915   EXPECT_EQ((_glapi_proc) __indirect_glMultMatrixf, table[_gloffset_MultMatrixf]);
916   EXPECT_EQ((_glapi_proc) __indirect_glNewList, table[_gloffset_NewList]);
917   EXPECT_EQ((_glapi_proc) __indirect_glNormal3b, table[_gloffset_Normal3b]);
918   EXPECT_EQ((_glapi_proc) __indirect_glNormal3bv, table[_gloffset_Normal3bv]);
919   EXPECT_EQ((_glapi_proc) __indirect_glNormal3d, table[_gloffset_Normal3d]);
920   EXPECT_EQ((_glapi_proc) __indirect_glNormal3dv, table[_gloffset_Normal3dv]);
921   EXPECT_EQ((_glapi_proc) __indirect_glNormal3f, table[_gloffset_Normal3f]);
922   EXPECT_EQ((_glapi_proc) __indirect_glNormal3fv, table[_gloffset_Normal3fv]);
923   EXPECT_EQ((_glapi_proc) __indirect_glNormal3i, table[_gloffset_Normal3i]);
924   EXPECT_EQ((_glapi_proc) __indirect_glNormal3iv, table[_gloffset_Normal3iv]);
925   EXPECT_EQ((_glapi_proc) __indirect_glNormal3s, table[_gloffset_Normal3s]);
926   EXPECT_EQ((_glapi_proc) __indirect_glNormal3sv, table[_gloffset_Normal3sv]);
927   EXPECT_EQ((_glapi_proc) __indirect_glOrtho, table[_gloffset_Ortho]);
928   EXPECT_EQ((_glapi_proc) __indirect_glPassThrough, table[_gloffset_PassThrough]);
929   EXPECT_EQ((_glapi_proc) __indirect_glPixelMapfv, table[_gloffset_PixelMapfv]);
930   EXPECT_EQ((_glapi_proc) __indirect_glPixelMapuiv, table[_gloffset_PixelMapuiv]);
931   EXPECT_EQ((_glapi_proc) __indirect_glPixelMapusv, table[_gloffset_PixelMapusv]);
932   EXPECT_EQ((_glapi_proc) __indirect_glPixelStoref, table[_gloffset_PixelStoref]);
933   EXPECT_EQ((_glapi_proc) __indirect_glPixelStorei, table[_gloffset_PixelStorei]);
934   EXPECT_EQ((_glapi_proc) __indirect_glPixelTransferf, table[_gloffset_PixelTransferf]);
935   EXPECT_EQ((_glapi_proc) __indirect_glPixelTransferi, table[_gloffset_PixelTransferi]);
936   EXPECT_EQ((_glapi_proc) __indirect_glPixelZoom, table[_gloffset_PixelZoom]);
937   EXPECT_EQ((_glapi_proc) __indirect_glPointSize, table[_gloffset_PointSize]);
938   EXPECT_EQ((_glapi_proc) __indirect_glPolygonMode, table[_gloffset_PolygonMode]);
939   EXPECT_EQ((_glapi_proc) __indirect_glPolygonStipple, table[_gloffset_PolygonStipple]);
940   EXPECT_EQ((_glapi_proc) __indirect_glPopAttrib, table[_gloffset_PopAttrib]);
941   EXPECT_EQ((_glapi_proc) __indirect_glPopMatrix, table[_gloffset_PopMatrix]);
942   EXPECT_EQ((_glapi_proc) __indirect_glPopName, table[_gloffset_PopName]);
943   EXPECT_EQ((_glapi_proc) __indirect_glPushAttrib, table[_gloffset_PushAttrib]);
944   EXPECT_EQ((_glapi_proc) __indirect_glPushMatrix, table[_gloffset_PushMatrix]);
945   EXPECT_EQ((_glapi_proc) __indirect_glPushName, table[_gloffset_PushName]);
946   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2d, table[_gloffset_RasterPos2d]);
947   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2dv, table[_gloffset_RasterPos2dv]);
948   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2f, table[_gloffset_RasterPos2f]);
949   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2fv, table[_gloffset_RasterPos2fv]);
950   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2i, table[_gloffset_RasterPos2i]);
951   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2iv, table[_gloffset_RasterPos2iv]);
952   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2s, table[_gloffset_RasterPos2s]);
953   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos2sv, table[_gloffset_RasterPos2sv]);
954   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3d, table[_gloffset_RasterPos3d]);
955   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3dv, table[_gloffset_RasterPos3dv]);
956   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3f, table[_gloffset_RasterPos3f]);
957   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3fv, table[_gloffset_RasterPos3fv]);
958   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3i, table[_gloffset_RasterPos3i]);
959   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3iv, table[_gloffset_RasterPos3iv]);
960   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3s, table[_gloffset_RasterPos3s]);
961   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos3sv, table[_gloffset_RasterPos3sv]);
962   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4d, table[_gloffset_RasterPos4d]);
963   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4dv, table[_gloffset_RasterPos4dv]);
964   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4f, table[_gloffset_RasterPos4f]);
965   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4fv, table[_gloffset_RasterPos4fv]);
966   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4i, table[_gloffset_RasterPos4i]);
967   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4iv, table[_gloffset_RasterPos4iv]);
968   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4s, table[_gloffset_RasterPos4s]);
969   EXPECT_EQ((_glapi_proc) __indirect_glRasterPos4sv, table[_gloffset_RasterPos4sv]);
970   EXPECT_EQ((_glapi_proc) __indirect_glReadBuffer, table[_gloffset_ReadBuffer]);
971   EXPECT_EQ((_glapi_proc) __indirect_glReadPixels, table[_gloffset_ReadPixels]);
972   EXPECT_EQ((_glapi_proc) __indirect_glRectd, table[_gloffset_Rectd]);
973   EXPECT_EQ((_glapi_proc) __indirect_glRectdv, table[_gloffset_Rectdv]);
974   EXPECT_EQ((_glapi_proc) __indirect_glRectf, table[_gloffset_Rectf]);
975   EXPECT_EQ((_glapi_proc) __indirect_glRectfv, table[_gloffset_Rectfv]);
976   EXPECT_EQ((_glapi_proc) __indirect_glRecti, table[_gloffset_Recti]);
977   EXPECT_EQ((_glapi_proc) __indirect_glRectiv, table[_gloffset_Rectiv]);
978   EXPECT_EQ((_glapi_proc) __indirect_glRects, table[_gloffset_Rects]);
979   EXPECT_EQ((_glapi_proc) __indirect_glRectsv, table[_gloffset_Rectsv]);
980   EXPECT_EQ((_glapi_proc) __indirect_glRenderMode, table[_gloffset_RenderMode]);
981   EXPECT_EQ((_glapi_proc) __indirect_glRotated, table[_gloffset_Rotated]);
982   EXPECT_EQ((_glapi_proc) __indirect_glRotatef, table[_gloffset_Rotatef]);
983   EXPECT_EQ((_glapi_proc) __indirect_glScaled, table[_gloffset_Scaled]);
984   EXPECT_EQ((_glapi_proc) __indirect_glScalef, table[_gloffset_Scalef]);
985   EXPECT_EQ((_glapi_proc) __indirect_glScissor, table[_gloffset_Scissor]);
986   EXPECT_EQ((_glapi_proc) __indirect_glSelectBuffer, table[_gloffset_SelectBuffer]);
987   EXPECT_EQ((_glapi_proc) __indirect_glShadeModel, table[_gloffset_ShadeModel]);
988   EXPECT_EQ((_glapi_proc) __indirect_glStencilFunc, table[_gloffset_StencilFunc]);
989   EXPECT_EQ((_glapi_proc) __indirect_glStencilMask, table[_gloffset_StencilMask]);
990   EXPECT_EQ((_glapi_proc) __indirect_glStencilOp, table[_gloffset_StencilOp]);
991   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1d, table[_gloffset_TexCoord1d]);
992   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1dv, table[_gloffset_TexCoord1dv]);
993   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1f, table[_gloffset_TexCoord1f]);
994   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1fv, table[_gloffset_TexCoord1fv]);
995   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1i, table[_gloffset_TexCoord1i]);
996   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1iv, table[_gloffset_TexCoord1iv]);
997   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1s, table[_gloffset_TexCoord1s]);
998   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord1sv, table[_gloffset_TexCoord1sv]);
999   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2d, table[_gloffset_TexCoord2d]);
1000   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2dv, table[_gloffset_TexCoord2dv]);
1001   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2f, table[_gloffset_TexCoord2f]);
1002   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2fv, table[_gloffset_TexCoord2fv]);
1003   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2i, table[_gloffset_TexCoord2i]);
1004   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2iv, table[_gloffset_TexCoord2iv]);
1005   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2s, table[_gloffset_TexCoord2s]);
1006   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord2sv, table[_gloffset_TexCoord2sv]);
1007   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3d, table[_gloffset_TexCoord3d]);
1008   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3dv, table[_gloffset_TexCoord3dv]);
1009   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3f, table[_gloffset_TexCoord3f]);
1010   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3fv, table[_gloffset_TexCoord3fv]);
1011   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3i, table[_gloffset_TexCoord3i]);
1012   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3iv, table[_gloffset_TexCoord3iv]);
1013   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3s, table[_gloffset_TexCoord3s]);
1014   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord3sv, table[_gloffset_TexCoord3sv]);
1015   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4d, table[_gloffset_TexCoord4d]);
1016   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4dv, table[_gloffset_TexCoord4dv]);
1017   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4f, table[_gloffset_TexCoord4f]);
1018   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4fv, table[_gloffset_TexCoord4fv]);
1019   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4i, table[_gloffset_TexCoord4i]);
1020   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4iv, table[_gloffset_TexCoord4iv]);
1021   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4s, table[_gloffset_TexCoord4s]);
1022   EXPECT_EQ((_glapi_proc) __indirect_glTexCoord4sv, table[_gloffset_TexCoord4sv]);
1023   EXPECT_EQ((_glapi_proc) __indirect_glTexEnvf, table[_gloffset_TexEnvf]);
1024   EXPECT_EQ((_glapi_proc) __indirect_glTexEnvfv, table[_gloffset_TexEnvfv]);
1025   EXPECT_EQ((_glapi_proc) __indirect_glTexEnvi, table[_gloffset_TexEnvi]);
1026   EXPECT_EQ((_glapi_proc) __indirect_glTexEnviv, table[_gloffset_TexEnviv]);
1027   EXPECT_EQ((_glapi_proc) __indirect_glTexGend, table[_gloffset_TexGend]);
1028   EXPECT_EQ((_glapi_proc) __indirect_glTexGendv, table[_gloffset_TexGendv]);
1029   EXPECT_EQ((_glapi_proc) __indirect_glTexGenf, table[_gloffset_TexGenf]);
1030   EXPECT_EQ((_glapi_proc) __indirect_glTexGenfv, table[_gloffset_TexGenfv]);
1031   EXPECT_EQ((_glapi_proc) __indirect_glTexGeni, table[_gloffset_TexGeni]);
1032   EXPECT_EQ((_glapi_proc) __indirect_glTexGeniv, table[_gloffset_TexGeniv]);
1033   EXPECT_EQ((_glapi_proc) __indirect_glTexImage1D, table[_gloffset_TexImage1D]);
1034   EXPECT_EQ((_glapi_proc) __indirect_glTexImage2D, table[_gloffset_TexImage2D]);
1035   EXPECT_EQ((_glapi_proc) __indirect_glTexParameterf, table[_gloffset_TexParameterf]);
1036   EXPECT_EQ((_glapi_proc) __indirect_glTexParameterfv, table[_gloffset_TexParameterfv]);
1037   EXPECT_EQ((_glapi_proc) __indirect_glTexParameteri, table[_gloffset_TexParameteri]);
1038   EXPECT_EQ((_glapi_proc) __indirect_glTexParameteriv, table[_gloffset_TexParameteriv]);
1039   EXPECT_EQ((_glapi_proc) __indirect_glTranslated, table[_gloffset_Translated]);
1040   EXPECT_EQ((_glapi_proc) __indirect_glTranslatef, table[_gloffset_Translatef]);
1041   EXPECT_EQ((_glapi_proc) __indirect_glVertex2d, table[_gloffset_Vertex2d]);
1042   EXPECT_EQ((_glapi_proc) __indirect_glVertex2dv, table[_gloffset_Vertex2dv]);
1043   EXPECT_EQ((_glapi_proc) __indirect_glVertex2f, table[_gloffset_Vertex2f]);
1044   EXPECT_EQ((_glapi_proc) __indirect_glVertex2fv, table[_gloffset_Vertex2fv]);
1045   EXPECT_EQ((_glapi_proc) __indirect_glVertex2i, table[_gloffset_Vertex2i]);
1046   EXPECT_EQ((_glapi_proc) __indirect_glVertex2iv, table[_gloffset_Vertex2iv]);
1047   EXPECT_EQ((_glapi_proc) __indirect_glVertex2s, table[_gloffset_Vertex2s]);
1048   EXPECT_EQ((_glapi_proc) __indirect_glVertex2sv, table[_gloffset_Vertex2sv]);
1049   EXPECT_EQ((_glapi_proc) __indirect_glVertex3d, table[_gloffset_Vertex3d]);
1050   EXPECT_EQ((_glapi_proc) __indirect_glVertex3dv, table[_gloffset_Vertex3dv]);
1051   EXPECT_EQ((_glapi_proc) __indirect_glVertex3f, table[_gloffset_Vertex3f]);
1052   EXPECT_EQ((_glapi_proc) __indirect_glVertex3fv, table[_gloffset_Vertex3fv]);
1053   EXPECT_EQ((_glapi_proc) __indirect_glVertex3i, table[_gloffset_Vertex3i]);
1054   EXPECT_EQ((_glapi_proc) __indirect_glVertex3iv, table[_gloffset_Vertex3iv]);
1055   EXPECT_EQ((_glapi_proc) __indirect_glVertex3s, table[_gloffset_Vertex3s]);
1056   EXPECT_EQ((_glapi_proc) __indirect_glVertex3sv, table[_gloffset_Vertex3sv]);
1057   EXPECT_EQ((_glapi_proc) __indirect_glVertex4d, table[_gloffset_Vertex4d]);
1058   EXPECT_EQ((_glapi_proc) __indirect_glVertex4dv, table[_gloffset_Vertex4dv]);
1059   EXPECT_EQ((_glapi_proc) __indirect_glVertex4f, table[_gloffset_Vertex4f]);
1060   EXPECT_EQ((_glapi_proc) __indirect_glVertex4fv, table[_gloffset_Vertex4fv]);
1061   EXPECT_EQ((_glapi_proc) __indirect_glVertex4i, table[_gloffset_Vertex4i]);
1062   EXPECT_EQ((_glapi_proc) __indirect_glVertex4iv, table[_gloffset_Vertex4iv]);
1063   EXPECT_EQ((_glapi_proc) __indirect_glVertex4s, table[_gloffset_Vertex4s]);
1064   EXPECT_EQ((_glapi_proc) __indirect_glVertex4sv, table[_gloffset_Vertex4sv]);
1065   EXPECT_EQ((_glapi_proc) __indirect_glViewport, table[_gloffset_Viewport]);
1066}
1067
1068TEST_F(IndirectAPI, OpenGL_11)
1069{
1070   EXPECT_EQ((_glapi_proc) __indirect_glAreTexturesResident, table[_gloffset_AreTexturesResident]);
1071   EXPECT_EQ((_glapi_proc) __indirect_glArrayElement, table[_gloffset_ArrayElement]);
1072   EXPECT_EQ((_glapi_proc) __indirect_glBindTexture, table[_gloffset_BindTexture]);
1073   EXPECT_EQ((_glapi_proc) __indirect_glColorPointer, table[_gloffset_ColorPointer]);
1074   EXPECT_EQ((_glapi_proc) __indirect_glCopyTexImage1D, table[_gloffset_CopyTexImage1D]);
1075   EXPECT_EQ((_glapi_proc) __indirect_glCopyTexImage2D, table[_gloffset_CopyTexImage2D]);
1076   EXPECT_EQ((_glapi_proc) __indirect_glCopyTexSubImage1D, table[_gloffset_CopyTexSubImage1D]);
1077   EXPECT_EQ((_glapi_proc) __indirect_glCopyTexSubImage2D, table[_gloffset_CopyTexSubImage2D]);
1078   EXPECT_EQ((_glapi_proc) __indirect_glDeleteTextures, table[_gloffset_DeleteTextures]);
1079   EXPECT_EQ((_glapi_proc) __indirect_glDisableClientState, table[_gloffset_DisableClientState]);
1080   EXPECT_EQ((_glapi_proc) __indirect_glDrawArrays, table[_gloffset_DrawArrays]);
1081   EXPECT_EQ((_glapi_proc) __indirect_glDrawElements, table[_gloffset_DrawElements]);
1082   EXPECT_EQ((_glapi_proc) __indirect_glEdgeFlagPointer, table[_gloffset_EdgeFlagPointer]);
1083   EXPECT_EQ((_glapi_proc) __indirect_glEnableClientState, table[_gloffset_EnableClientState]);
1084   EXPECT_EQ((_glapi_proc) __indirect_glGenTextures, table[_gloffset_GenTextures]);
1085   EXPECT_EQ((_glapi_proc) __indirect_glGetPointerv, table[_gloffset_GetPointerv]);
1086   EXPECT_EQ((_glapi_proc) __indirect_glIndexPointer, table[_gloffset_IndexPointer]);
1087   EXPECT_EQ((_glapi_proc) __indirect_glIndexub, table[_gloffset_Indexub]);
1088   EXPECT_EQ((_glapi_proc) __indirect_glIndexubv, table[_gloffset_Indexubv]);
1089   EXPECT_EQ((_glapi_proc) __indirect_glInterleavedArrays, table[_gloffset_InterleavedArrays]);
1090   EXPECT_EQ((_glapi_proc) __indirect_glIsTexture, table[_gloffset_IsTexture]);
1091   EXPECT_EQ((_glapi_proc) __indirect_glNormalPointer, table[_gloffset_NormalPointer]);
1092   EXPECT_EQ((_glapi_proc) __indirect_glPolygonOffset, table[_gloffset_PolygonOffset]);
1093   EXPECT_EQ((_glapi_proc) __indirect_glPopClientAttrib, table[_gloffset_PopClientAttrib]);
1094   EXPECT_EQ((_glapi_proc) __indirect_glPrioritizeTextures, table[_gloffset_PrioritizeTextures]);
1095   EXPECT_EQ((_glapi_proc) __indirect_glPushClientAttrib, table[_gloffset_PushClientAttrib]);
1096   EXPECT_EQ((_glapi_proc) __indirect_glTexCoordPointer, table[_gloffset_TexCoordPointer]);
1097   EXPECT_EQ((_glapi_proc) __indirect_glTexSubImage1D, table[_gloffset_TexSubImage1D]);
1098   EXPECT_EQ((_glapi_proc) __indirect_glTexSubImage2D, table[_gloffset_TexSubImage2D]);
1099   EXPECT_EQ((_glapi_proc) __indirect_glVertexPointer, table[_gloffset_VertexPointer]);
1100}
1101
1102TEST_F(IndirectAPI, OpenGL_12)
1103{
1104   EXPECT_EQ((_glapi_proc) __indirect_glBlendColor, table[_gloffset_BlendColor]);
1105   EXPECT_EQ((_glapi_proc) __indirect_glBlendEquation, table[_gloffset_BlendEquation]);
1106   EXPECT_EQ((_glapi_proc) __indirect_glColorSubTable, table[_gloffset_ColorSubTable]);
1107   EXPECT_EQ((_glapi_proc) __indirect_glColorTable, table[_gloffset_ColorTable]);
1108   EXPECT_EQ((_glapi_proc) __indirect_glColorTableParameterfv, table[_gloffset_ColorTableParameterfv]);
1109   EXPECT_EQ((_glapi_proc) __indirect_glColorTableParameteriv, table[_gloffset_ColorTableParameteriv]);
1110   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionFilter1D, table[_gloffset_ConvolutionFilter1D]);
1111   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionFilter2D, table[_gloffset_ConvolutionFilter2D]);
1112   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionParameterf, table[_gloffset_ConvolutionParameterf]);
1113   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionParameterfv, table[_gloffset_ConvolutionParameterfv]);
1114   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionParameteri, table[_gloffset_ConvolutionParameteri]);
1115   EXPECT_EQ((_glapi_proc) __indirect_glConvolutionParameteriv, table[_gloffset_ConvolutionParameteriv]);
1116   EXPECT_EQ((_glapi_proc) __indirect_glCopyColorSubTable, table[_gloffset_CopyColorSubTable]);
1117   EXPECT_EQ((_glapi_proc) __indirect_glCopyColorTable, table[_gloffset_CopyColorTable]);
1118   EXPECT_EQ((_glapi_proc) __indirect_glCopyConvolutionFilter1D, table[_gloffset_CopyConvolutionFilter1D]);
1119   EXPECT_EQ((_glapi_proc) __indirect_glCopyConvolutionFilter2D, table[_gloffset_CopyConvolutionFilter2D]);
1120   EXPECT_EQ((_glapi_proc) __indirect_glCopyTexSubImage3D, table[_gloffset_CopyTexSubImage3D]);
1121   EXPECT_EQ((_glapi_proc) __indirect_glDrawRangeElements, table[_gloffset_DrawRangeElements]);
1122   EXPECT_EQ((_glapi_proc) __indirect_glGetColorTable, table[_gloffset_GetColorTable]);
1123   EXPECT_EQ((_glapi_proc) __indirect_glGetColorTableParameterfv, table[_gloffset_GetColorTableParameterfv]);
1124   EXPECT_EQ((_glapi_proc) __indirect_glGetColorTableParameteriv, table[_gloffset_GetColorTableParameteriv]);
1125   EXPECT_EQ((_glapi_proc) __indirect_glGetConvolutionFilter, table[_gloffset_GetConvolutionFilter]);
1126   EXPECT_EQ((_glapi_proc) __indirect_glGetConvolutionParameterfv, table[_gloffset_GetConvolutionParameterfv]);
1127   EXPECT_EQ((_glapi_proc) __indirect_glGetConvolutionParameteriv, table[_gloffset_GetConvolutionParameteriv]);
1128   EXPECT_EQ((_glapi_proc) __indirect_glGetHistogram, table[_gloffset_GetHistogram]);
1129   EXPECT_EQ((_glapi_proc) __indirect_glGetHistogramParameterfv, table[_gloffset_GetHistogramParameterfv]);
1130   EXPECT_EQ((_glapi_proc) __indirect_glGetHistogramParameteriv, table[_gloffset_GetHistogramParameteriv]);
1131   EXPECT_EQ((_glapi_proc) __indirect_glGetMinmax, table[_gloffset_GetMinmax]);
1132   EXPECT_EQ((_glapi_proc) __indirect_glGetMinmaxParameterfv, table[_gloffset_GetMinmaxParameterfv]);
1133   EXPECT_EQ((_glapi_proc) __indirect_glGetMinmaxParameteriv, table[_gloffset_GetMinmaxParameteriv]);
1134   EXPECT_EQ((_glapi_proc) __indirect_glGetSeparableFilter, table[_gloffset_GetSeparableFilter]);
1135   EXPECT_EQ((_glapi_proc) __indirect_glHistogram, table[_gloffset_Histogram]);
1136   EXPECT_EQ((_glapi_proc) __indirect_glMinmax, table[_gloffset_Minmax]);
1137   EXPECT_EQ((_glapi_proc) __indirect_glResetHistogram, table[_gloffset_ResetHistogram]);
1138   EXPECT_EQ((_glapi_proc) __indirect_glResetMinmax, table[_gloffset_ResetMinmax]);
1139   EXPECT_EQ((_glapi_proc) __indirect_glSeparableFilter2D, table[_gloffset_SeparableFilter2D]);
1140   EXPECT_EQ((_glapi_proc) __indirect_glTexImage3D, table[_gloffset_TexImage3D]);
1141   EXPECT_EQ((_glapi_proc) __indirect_glTexSubImage3D, table[_gloffset_TexSubImage3D]);
1142}
1143
1144TEST_F(IndirectAPI, OpenGL_20_is_nop)
1145{
1146   _glapi_proc const nop = table[_gloffset_COUNT];
1147
1148   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glAttachShader")]);
1149   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glCreateProgram")]);
1150   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glCreateShader")]);
1151   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glDeleteProgram")]);
1152   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glDeleteShader")]);
1153   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glDetachShader")]);
1154   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glGetAttachedShaders")]);
1155   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glGetProgramInfoLog")]);
1156   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glGetProgramiv")]);
1157   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glGetShaderInfoLog")]);
1158   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glGetShaderiv")]);
1159   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glIsProgram")]);
1160   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glIsShader")]);
1161   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glStencilFuncSeparate")]);
1162   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glStencilMaskSeparate")]);
1163   EXPECT_EQ(nop, table[_glapi_get_proc_offset("glStencilOpSeparate")]);
1164}
1165
1166TEST_F(IndirectAPI, ARB_multitexture)
1167{
1168   EXPECT_EQ((_glapi_proc) __indirect_glActiveTextureARB, table[_gloffset_ActiveTextureARB]);
1169   EXPECT_EQ((_glapi_proc) __indirect_glClientActiveTextureARB, table[_gloffset_ClientActiveTextureARB]);
1170   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1dARB, table[_gloffset_MultiTexCoord1dARB]);
1171   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1dvARB, table[_gloffset_MultiTexCoord1dvARB]);
1172   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1fARB, table[_gloffset_MultiTexCoord1fARB]);
1173   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1fvARB, table[_gloffset_MultiTexCoord1fvARB]);
1174   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1iARB, table[_gloffset_MultiTexCoord1iARB]);
1175   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1ivARB, table[_gloffset_MultiTexCoord1ivARB]);
1176   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1sARB, table[_gloffset_MultiTexCoord1sARB]);
1177   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord1svARB, table[_gloffset_MultiTexCoord1svARB]);
1178   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2dARB, table[_gloffset_MultiTexCoord2dARB]);
1179   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2dvARB, table[_gloffset_MultiTexCoord2dvARB]);
1180   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2fARB, table[_gloffset_MultiTexCoord2fARB]);
1181   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2fvARB, table[_gloffset_MultiTexCoord2fvARB]);
1182   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2iARB, table[_gloffset_MultiTexCoord2iARB]);
1183   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2ivARB, table[_gloffset_MultiTexCoord2ivARB]);
1184   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2sARB, table[_gloffset_MultiTexCoord2sARB]);
1185   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord2svARB, table[_gloffset_MultiTexCoord2svARB]);
1186   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3dARB, table[_gloffset_MultiTexCoord3dARB]);
1187   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3dvARB, table[_gloffset_MultiTexCoord3dvARB]);
1188   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3fARB, table[_gloffset_MultiTexCoord3fARB]);
1189   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3fvARB, table[_gloffset_MultiTexCoord3fvARB]);
1190   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3iARB, table[_gloffset_MultiTexCoord3iARB]);
1191   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3ivARB, table[_gloffset_MultiTexCoord3ivARB]);
1192   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3sARB, table[_gloffset_MultiTexCoord3sARB]);
1193   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord3svARB, table[_gloffset_MultiTexCoord3svARB]);
1194   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4dARB, table[_gloffset_MultiTexCoord4dARB]);
1195   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4dvARB, table[_gloffset_MultiTexCoord4dvARB]);
1196   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4fARB, table[_gloffset_MultiTexCoord4fARB]);
1197   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4fvARB, table[_gloffset_MultiTexCoord4fvARB]);
1198   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4iARB, table[_gloffset_MultiTexCoord4iARB]);
1199   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4ivARB, table[_gloffset_MultiTexCoord4ivARB]);
1200   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4sARB, table[_gloffset_MultiTexCoord4sARB]);
1201   EXPECT_EQ((_glapi_proc) __indirect_glMultiTexCoord4svARB, table[_gloffset_MultiTexCoord4svARB]);
1202}
1203
1204TEST_F(IndirectAPI, ARB_transpose_matrix)
1205{
1206   EXPECT_EQ((_glapi_proc) __indirect_glLoadTransposeMatrixdARB, table[_glapi_get_proc_offset("glLoadTransposeMatrixdARB")]);
1207   EXPECT_EQ((_glapi_proc) __indirect_glLoadTransposeMatrixfARB, table[_glapi_get_proc_offset("glLoadTransposeMatrixfARB")]);
1208   EXPECT_EQ((_glapi_proc) __indirect_glMultTransposeMatrixdARB, table[_glapi_get_proc_offset("glMultTransposeMatrixdARB")]);
1209   EXPECT_EQ((_glapi_proc) __indirect_glMultTransposeMatrixfARB, table[_glapi_get_proc_offset("glMultTransposeMatrixfARB")]);
1210}
1211
1212TEST_F(IndirectAPI, ARB_multisample)
1213{
1214   EXPECT_EQ((_glapi_proc) __indirect_glSampleCoverageARB, table[_glapi_get_proc_offset("glSampleCoverageARB")]);
1215}
1216
1217TEST_F(IndirectAPI, ARB_texture_compression)
1218{
1219   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexImage1DARB, table[_glapi_get_proc_offset("glCompressedTexImage1DARB")]);
1220   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexImage2DARB, table[_glapi_get_proc_offset("glCompressedTexImage2DARB")]);
1221   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexImage3DARB, table[_glapi_get_proc_offset("glCompressedTexImage3DARB")]);
1222   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexSubImage1DARB, table[_glapi_get_proc_offset("glCompressedTexSubImage1DARB")]);
1223   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexSubImage2DARB, table[_glapi_get_proc_offset("glCompressedTexSubImage2DARB")]);
1224   EXPECT_EQ((_glapi_proc) __indirect_glCompressedTexSubImage3DARB, table[_glapi_get_proc_offset("glCompressedTexSubImage3DARB")]);
1225   EXPECT_EQ((_glapi_proc) __indirect_glGetCompressedTexImageARB, table[_glapi_get_proc_offset("glGetCompressedTexImageARB")]);
1226}
1227
1228TEST_F(IndirectAPI, ARB_vertex_program)
1229{
1230   EXPECT_EQ((_glapi_proc) __indirect_glDisableVertexAttribArrayARB, table[_glapi_get_proc_offset("glDisableVertexAttribArrayARB")]);
1231   EXPECT_EQ((_glapi_proc) __indirect_glEnableVertexAttribArrayARB, table[_glapi_get_proc_offset("glEnableVertexAttribArrayARB")]);
1232   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramEnvParameterdvARB, table[_glapi_get_proc_offset("glGetProgramEnvParameterdvARB")]);
1233   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramEnvParameterfvARB, table[_glapi_get_proc_offset("glGetProgramEnvParameterfvARB")]);
1234   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramLocalParameterdvARB, table[_glapi_get_proc_offset("glGetProgramLocalParameterdvARB")]);
1235   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramLocalParameterfvARB, table[_glapi_get_proc_offset("glGetProgramLocalParameterfvARB")]);
1236   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramStringARB, table[_glapi_get_proc_offset("glGetProgramStringARB")]);
1237   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramivARB, table[_glapi_get_proc_offset("glGetProgramivARB")]);
1238   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribdvARB, table[_glapi_get_proc_offset("glGetVertexAttribdvARB")]);
1239   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribfvARB, table[_glapi_get_proc_offset("glGetVertexAttribfvARB")]);
1240   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribivARB, table[_glapi_get_proc_offset("glGetVertexAttribivARB")]);
1241   EXPECT_EQ((_glapi_proc) __indirect_glProgramEnvParameter4dARB, table[_glapi_get_proc_offset("glProgramEnvParameter4dARB")]);
1242   EXPECT_EQ((_glapi_proc) __indirect_glProgramEnvParameter4dvARB, table[_glapi_get_proc_offset("glProgramEnvParameter4dvARB")]);
1243   EXPECT_EQ((_glapi_proc) __indirect_glProgramEnvParameter4fARB, table[_glapi_get_proc_offset("glProgramEnvParameter4fARB")]);
1244   EXPECT_EQ((_glapi_proc) __indirect_glProgramEnvParameter4fvARB, table[_glapi_get_proc_offset("glProgramEnvParameter4fvARB")]);
1245   EXPECT_EQ((_glapi_proc) __indirect_glProgramLocalParameter4dARB, table[_glapi_get_proc_offset("glProgramLocalParameter4dARB")]);
1246   EXPECT_EQ((_glapi_proc) __indirect_glProgramLocalParameter4dvARB, table[_glapi_get_proc_offset("glProgramLocalParameter4dvARB")]);
1247   EXPECT_EQ((_glapi_proc) __indirect_glProgramLocalParameter4fARB, table[_glapi_get_proc_offset("glProgramLocalParameter4fARB")]);
1248   EXPECT_EQ((_glapi_proc) __indirect_glProgramLocalParameter4fvARB, table[_glapi_get_proc_offset("glProgramLocalParameter4fvARB")]);
1249   EXPECT_EQ((_glapi_proc) __indirect_glProgramStringARB, table[_glapi_get_proc_offset("glProgramStringARB")]);
1250   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1dARB, table[_glapi_get_proc_offset("glVertexAttrib1dARB")]);
1251   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1dvARB, table[_glapi_get_proc_offset("glVertexAttrib1dvARB")]);
1252   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1fARB, table[_glapi_get_proc_offset("glVertexAttrib1fARB")]);
1253   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1fvARB, table[_glapi_get_proc_offset("glVertexAttrib1fvARB")]);
1254   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1sARB, table[_glapi_get_proc_offset("glVertexAttrib1sARB")]);
1255   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1svARB, table[_glapi_get_proc_offset("glVertexAttrib1svARB")]);
1256   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2dARB, table[_glapi_get_proc_offset("glVertexAttrib2dARB")]);
1257   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2dvARB, table[_glapi_get_proc_offset("glVertexAttrib2dvARB")]);
1258   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2fARB, table[_glapi_get_proc_offset("glVertexAttrib2fARB")]);
1259   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2fvARB, table[_glapi_get_proc_offset("glVertexAttrib2fvARB")]);
1260   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2sARB, table[_glapi_get_proc_offset("glVertexAttrib2sARB")]);
1261   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2svARB, table[_glapi_get_proc_offset("glVertexAttrib2svARB")]);
1262   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3dARB, table[_glapi_get_proc_offset("glVertexAttrib3dARB")]);
1263   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3dvARB, table[_glapi_get_proc_offset("glVertexAttrib3dvARB")]);
1264   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3fARB, table[_glapi_get_proc_offset("glVertexAttrib3fARB")]);
1265   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3fvARB, table[_glapi_get_proc_offset("glVertexAttrib3fvARB")]);
1266   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3sARB, table[_glapi_get_proc_offset("glVertexAttrib3sARB")]);
1267   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3svARB, table[_glapi_get_proc_offset("glVertexAttrib3svARB")]);
1268   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NbvARB, table[_glapi_get_proc_offset("glVertexAttrib4NbvARB")]);
1269   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NivARB, table[_glapi_get_proc_offset("glVertexAttrib4NivARB")]);
1270   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NsvARB, table[_glapi_get_proc_offset("glVertexAttrib4NsvARB")]);
1271   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NubARB, table[_glapi_get_proc_offset("glVertexAttrib4NubARB")]);
1272   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NubvARB, table[_glapi_get_proc_offset("glVertexAttrib4NubvARB")]);
1273   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NuivARB, table[_glapi_get_proc_offset("glVertexAttrib4NuivARB")]);
1274   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4NusvARB, table[_glapi_get_proc_offset("glVertexAttrib4NusvARB")]);
1275   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4bvARB, table[_glapi_get_proc_offset("glVertexAttrib4bvARB")]);
1276   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4dARB, table[_glapi_get_proc_offset("glVertexAttrib4dARB")]);
1277   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4dvARB, table[_glapi_get_proc_offset("glVertexAttrib4dvARB")]);
1278   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4fARB, table[_glapi_get_proc_offset("glVertexAttrib4fARB")]);
1279   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4fvARB, table[_glapi_get_proc_offset("glVertexAttrib4fvARB")]);
1280   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ivARB, table[_glapi_get_proc_offset("glVertexAttrib4ivARB")]);
1281   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4sARB, table[_glapi_get_proc_offset("glVertexAttrib4sARB")]);
1282   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4svARB, table[_glapi_get_proc_offset("glVertexAttrib4svARB")]);
1283   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ubvARB, table[_glapi_get_proc_offset("glVertexAttrib4ubvARB")]);
1284   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4uivARB, table[_glapi_get_proc_offset("glVertexAttrib4uivARB")]);
1285   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4usvARB, table[_glapi_get_proc_offset("glVertexAttrib4usvARB")]);
1286   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribPointerARB, table[_glapi_get_proc_offset("glVertexAttribPointerARB")]);
1287}
1288
1289TEST_F(IndirectAPI, ARB_occlusion_query)
1290{
1291   EXPECT_EQ((_glapi_proc) __indirect_glBeginQueryARB, table[_glapi_get_proc_offset("glBeginQueryARB")]);
1292   EXPECT_EQ((_glapi_proc) __indirect_glDeleteQueriesARB, table[_glapi_get_proc_offset("glDeleteQueriesARB")]);
1293   EXPECT_EQ((_glapi_proc) __indirect_glEndQueryARB, table[_glapi_get_proc_offset("glEndQueryARB")]);
1294   EXPECT_EQ((_glapi_proc) __indirect_glGenQueriesARB, table[_glapi_get_proc_offset("glGenQueriesARB")]);
1295   EXPECT_EQ((_glapi_proc) __indirect_glGetQueryObjectivARB, table[_glapi_get_proc_offset("glGetQueryObjectivARB")]);
1296   EXPECT_EQ((_glapi_proc) __indirect_glGetQueryObjectuivARB, table[_glapi_get_proc_offset("glGetQueryObjectuivARB")]);
1297   EXPECT_EQ((_glapi_proc) __indirect_glGetQueryivARB, table[_glapi_get_proc_offset("glGetQueryivARB")]);
1298   EXPECT_EQ((_glapi_proc) __indirect_glIsQueryARB, table[_glapi_get_proc_offset("glIsQueryARB")]);
1299}
1300
1301TEST_F(IndirectAPI, ARB_draw_buffers)
1302{
1303   EXPECT_EQ((_glapi_proc) __indirect_glDrawBuffersARB, table[_glapi_get_proc_offset("glDrawBuffersARB")]);
1304}
1305
1306TEST_F(IndirectAPI, ARB_color_buffer_float)
1307{
1308   EXPECT_EQ((_glapi_proc) __indirect_glClampColorARB, table[_glapi_get_proc_offset("glClampColorARB")]);
1309}
1310
1311TEST_F(IndirectAPI, ARB_framebuffer_object)
1312{
1313   EXPECT_EQ((_glapi_proc) __indirect_glRenderbufferStorageMultisample, table[_glapi_get_proc_offset("glRenderbufferStorageMultisample")]);
1314}
1315
1316TEST_F(IndirectAPI, SGIS_multisample)
1317{
1318   EXPECT_EQ((_glapi_proc) __indirect_glSampleMaskSGIS, table[_glapi_get_proc_offset("glSampleMaskSGIS")]);
1319   EXPECT_EQ((_glapi_proc) __indirect_glSamplePatternSGIS, table[_glapi_get_proc_offset("glSamplePatternSGIS")]);
1320}
1321
1322TEST_F(IndirectAPI, EXT_vertex_array)
1323{
1324   EXPECT_EQ((_glapi_proc) __indirect_glColorPointerEXT, table[_glapi_get_proc_offset("glColorPointerEXT")]);
1325   EXPECT_EQ((_glapi_proc) __indirect_glEdgeFlagPointerEXT, table[_glapi_get_proc_offset("glEdgeFlagPointerEXT")]);
1326   EXPECT_EQ((_glapi_proc) __indirect_glIndexPointerEXT, table[_glapi_get_proc_offset("glIndexPointerEXT")]);
1327   EXPECT_EQ((_glapi_proc) __indirect_glNormalPointerEXT, table[_glapi_get_proc_offset("glNormalPointerEXT")]);
1328   EXPECT_EQ((_glapi_proc) __indirect_glTexCoordPointerEXT, table[_glapi_get_proc_offset("glTexCoordPointerEXT")]);
1329   EXPECT_EQ((_glapi_proc) __indirect_glVertexPointerEXT, table[_glapi_get_proc_offset("glVertexPointerEXT")]);
1330}
1331
1332TEST_F(IndirectAPI, EXT_point_parameters)
1333{
1334   EXPECT_EQ((_glapi_proc) __indirect_glPointParameterfEXT, table[_glapi_get_proc_offset("glPointParameterfEXT")]);
1335   EXPECT_EQ((_glapi_proc) __indirect_glPointParameterfvEXT, table[_glapi_get_proc_offset("glPointParameterfvEXT")]);
1336}
1337
1338TEST_F(IndirectAPI, EXT_secondary_color)
1339{
1340   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3bEXT, table[_glapi_get_proc_offset("glSecondaryColor3bEXT")]);
1341   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3bvEXT, table[_glapi_get_proc_offset("glSecondaryColor3bvEXT")]);
1342   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3dEXT, table[_glapi_get_proc_offset("glSecondaryColor3dEXT")]);
1343   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3dvEXT, table[_glapi_get_proc_offset("glSecondaryColor3dvEXT")]);
1344   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3fEXT, table[_glapi_get_proc_offset("glSecondaryColor3fEXT")]);
1345   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3fvEXT, table[_glapi_get_proc_offset("glSecondaryColor3fvEXT")]);
1346   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3iEXT, table[_glapi_get_proc_offset("glSecondaryColor3iEXT")]);
1347   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3ivEXT, table[_glapi_get_proc_offset("glSecondaryColor3ivEXT")]);
1348   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3sEXT, table[_glapi_get_proc_offset("glSecondaryColor3sEXT")]);
1349   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3svEXT, table[_glapi_get_proc_offset("glSecondaryColor3svEXT")]);
1350   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3ubEXT, table[_glapi_get_proc_offset("glSecondaryColor3ubEXT")]);
1351   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3ubvEXT, table[_glapi_get_proc_offset("glSecondaryColor3ubvEXT")]);
1352   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3uiEXT, table[_glapi_get_proc_offset("glSecondaryColor3uiEXT")]);
1353   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3uivEXT, table[_glapi_get_proc_offset("glSecondaryColor3uivEXT")]);
1354   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3usEXT, table[_glapi_get_proc_offset("glSecondaryColor3usEXT")]);
1355   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColor3usvEXT, table[_glapi_get_proc_offset("glSecondaryColor3usvEXT")]);
1356   EXPECT_EQ((_glapi_proc) __indirect_glSecondaryColorPointerEXT, table[_glapi_get_proc_offset("glSecondaryColorPointerEXT")]);
1357}
1358
1359TEST_F(IndirectAPI, EXT_multi_draw_arrays)
1360{
1361   EXPECT_EQ((_glapi_proc) __indirect_glMultiDrawArraysEXT, table[_glapi_get_proc_offset("glMultiDrawArraysEXT")]);
1362   EXPECT_EQ((_glapi_proc) __indirect_glMultiDrawElementsEXT, table[_glapi_get_proc_offset("glMultiDrawElementsEXT")]);
1363}
1364
1365TEST_F(IndirectAPI, EXT_fog_coord)
1366{
1367   EXPECT_EQ((_glapi_proc) __indirect_glFogCoordPointerEXT, table[_glapi_get_proc_offset("glFogCoordPointerEXT")]);
1368   EXPECT_EQ((_glapi_proc) __indirect_glFogCoorddEXT, table[_glapi_get_proc_offset("glFogCoorddEXT")]);
1369   EXPECT_EQ((_glapi_proc) __indirect_glFogCoorddvEXT, table[_glapi_get_proc_offset("glFogCoorddvEXT")]);
1370   EXPECT_EQ((_glapi_proc) __indirect_glFogCoordfEXT, table[_glapi_get_proc_offset("glFogCoordfEXT")]);
1371   EXPECT_EQ((_glapi_proc) __indirect_glFogCoordfvEXT, table[_glapi_get_proc_offset("glFogCoordfvEXT")]);
1372}
1373
1374TEST_F(IndirectAPI, EXT_blend_func_separate)
1375{
1376   EXPECT_EQ((_glapi_proc) __indirect_glBlendFuncSeparateEXT, table[_glapi_get_proc_offset("glBlendFuncSeparateEXT")]);
1377}
1378
1379TEST_F(IndirectAPI, MESA_window_pos)
1380{
1381   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2dMESA, table[_glapi_get_proc_offset("glWindowPos2dMESA")]);
1382   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2dvMESA, table[_glapi_get_proc_offset("glWindowPos2dvMESA")]);
1383   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2fMESA, table[_glapi_get_proc_offset("glWindowPos2fMESA")]);
1384   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2fvMESA, table[_glapi_get_proc_offset("glWindowPos2fvMESA")]);
1385   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2iMESA, table[_glapi_get_proc_offset("glWindowPos2iMESA")]);
1386   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2ivMESA, table[_glapi_get_proc_offset("glWindowPos2ivMESA")]);
1387   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2sMESA, table[_glapi_get_proc_offset("glWindowPos2sMESA")]);
1388   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos2svMESA, table[_glapi_get_proc_offset("glWindowPos2svMESA")]);
1389   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3dMESA, table[_glapi_get_proc_offset("glWindowPos3dMESA")]);
1390   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3dvMESA, table[_glapi_get_proc_offset("glWindowPos3dvMESA")]);
1391   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3fMESA, table[_glapi_get_proc_offset("glWindowPos3fMESA")]);
1392   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3fvMESA, table[_glapi_get_proc_offset("glWindowPos3fvMESA")]);
1393   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3iMESA, table[_glapi_get_proc_offset("glWindowPos3iMESA")]);
1394   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3ivMESA, table[_glapi_get_proc_offset("glWindowPos3ivMESA")]);
1395   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3sMESA, table[_glapi_get_proc_offset("glWindowPos3sMESA")]);
1396   EXPECT_EQ((_glapi_proc) __indirect_glWindowPos3svMESA, table[_glapi_get_proc_offset("glWindowPos3svMESA")]);
1397}
1398
1399TEST_F(IndirectAPI, NV_vertex_program)
1400{
1401   EXPECT_EQ((_glapi_proc) __indirect_glAreProgramsResidentNV, table[_glapi_get_proc_offset("glAreProgramsResidentNV")]);
1402   EXPECT_EQ((_glapi_proc) __indirect_glBindProgramNV, table[_glapi_get_proc_offset("glBindProgramNV")]);
1403   EXPECT_EQ((_glapi_proc) __indirect_glDeleteProgramsNV, table[_glapi_get_proc_offset("glDeleteProgramsNV")]);
1404   EXPECT_EQ((_glapi_proc) __indirect_glExecuteProgramNV, table[_glapi_get_proc_offset("glExecuteProgramNV")]);
1405   EXPECT_EQ((_glapi_proc) __indirect_glGenProgramsNV, table[_glapi_get_proc_offset("glGenProgramsNV")]);
1406   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramParameterdvNV, table[_glapi_get_proc_offset("glGetProgramParameterdvNV")]);
1407   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramParameterfvNV, table[_glapi_get_proc_offset("glGetProgramParameterfvNV")]);
1408   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramStringNV, table[_glapi_get_proc_offset("glGetProgramStringNV")]);
1409   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramivNV, table[_glapi_get_proc_offset("glGetProgramivNV")]);
1410   EXPECT_EQ((_glapi_proc) __indirect_glGetTrackMatrixivNV, table[_glapi_get_proc_offset("glGetTrackMatrixivNV")]);
1411   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribPointervNV, table[_glapi_get_proc_offset("glGetVertexAttribPointervNV")]);
1412   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribdvNV, table[_glapi_get_proc_offset("glGetVertexAttribdvNV")]);
1413   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribfvNV, table[_glapi_get_proc_offset("glGetVertexAttribfvNV")]);
1414   EXPECT_EQ((_glapi_proc) __indirect_glGetVertexAttribivNV, table[_glapi_get_proc_offset("glGetVertexAttribivNV")]);
1415   EXPECT_EQ((_glapi_proc) __indirect_glIsProgramNV, table[_glapi_get_proc_offset("glIsProgramNV")]);
1416   EXPECT_EQ((_glapi_proc) __indirect_glLoadProgramNV, table[_glapi_get_proc_offset("glLoadProgramNV")]);
1417   EXPECT_EQ((_glapi_proc) __indirect_glProgramParameters4dvNV, table[_glapi_get_proc_offset("glProgramParameters4dvNV")]);
1418   EXPECT_EQ((_glapi_proc) __indirect_glProgramParameters4fvNV, table[_glapi_get_proc_offset("glProgramParameters4fvNV")]);
1419   EXPECT_EQ((_glapi_proc) __indirect_glRequestResidentProgramsNV, table[_glapi_get_proc_offset("glRequestResidentProgramsNV")]);
1420   EXPECT_EQ((_glapi_proc) __indirect_glTrackMatrixNV, table[_glapi_get_proc_offset("glTrackMatrixNV")]);
1421   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1dNV, table[_glapi_get_proc_offset("glVertexAttrib1dNV")]);
1422   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1dvNV, table[_glapi_get_proc_offset("glVertexAttrib1dvNV")]);
1423   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1fNV, table[_glapi_get_proc_offset("glVertexAttrib1fNV")]);
1424   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1fvNV, table[_glapi_get_proc_offset("glVertexAttrib1fvNV")]);
1425   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1sNV, table[_glapi_get_proc_offset("glVertexAttrib1sNV")]);
1426   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib1svNV, table[_glapi_get_proc_offset("glVertexAttrib1svNV")]);
1427   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2dNV, table[_glapi_get_proc_offset("glVertexAttrib2dNV")]);
1428   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2dvNV, table[_glapi_get_proc_offset("glVertexAttrib2dvNV")]);
1429   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2fNV, table[_glapi_get_proc_offset("glVertexAttrib2fNV")]);
1430   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2fvNV, table[_glapi_get_proc_offset("glVertexAttrib2fvNV")]);
1431   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2sNV, table[_glapi_get_proc_offset("glVertexAttrib2sNV")]);
1432   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib2svNV, table[_glapi_get_proc_offset("glVertexAttrib2svNV")]);
1433   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3dNV, table[_glapi_get_proc_offset("glVertexAttrib3dNV")]);
1434   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3dvNV, table[_glapi_get_proc_offset("glVertexAttrib3dvNV")]);
1435   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3fNV, table[_glapi_get_proc_offset("glVertexAttrib3fNV")]);
1436   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3fvNV, table[_glapi_get_proc_offset("glVertexAttrib3fvNV")]);
1437   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3sNV, table[_glapi_get_proc_offset("glVertexAttrib3sNV")]);
1438   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib3svNV, table[_glapi_get_proc_offset("glVertexAttrib3svNV")]);
1439   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4dNV, table[_glapi_get_proc_offset("glVertexAttrib4dNV")]);
1440   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4dvNV, table[_glapi_get_proc_offset("glVertexAttrib4dvNV")]);
1441   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4fNV, table[_glapi_get_proc_offset("glVertexAttrib4fNV")]);
1442   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4fvNV, table[_glapi_get_proc_offset("glVertexAttrib4fvNV")]);
1443   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4sNV, table[_glapi_get_proc_offset("glVertexAttrib4sNV")]);
1444   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4svNV, table[_glapi_get_proc_offset("glVertexAttrib4svNV")]);
1445   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ubNV, table[_glapi_get_proc_offset("glVertexAttrib4ubNV")]);
1446   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttrib4ubvNV, table[_glapi_get_proc_offset("glVertexAttrib4ubvNV")]);
1447   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribPointerNV, table[_glapi_get_proc_offset("glVertexAttribPointerNV")]);
1448   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1dvNV, table[_glapi_get_proc_offset("glVertexAttribs1dvNV")]);
1449   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1fvNV, table[_glapi_get_proc_offset("glVertexAttribs1fvNV")]);
1450   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs1svNV, table[_glapi_get_proc_offset("glVertexAttribs1svNV")]);
1451   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs2dvNV, table[_glapi_get_proc_offset("glVertexAttribs2dvNV")]);
1452   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs2fvNV, table[_glapi_get_proc_offset("glVertexAttribs2fvNV")]);
1453   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs2svNV, table[_glapi_get_proc_offset("glVertexAttribs2svNV")]);
1454   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs3dvNV, table[_glapi_get_proc_offset("glVertexAttribs3dvNV")]);
1455   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs3fvNV, table[_glapi_get_proc_offset("glVertexAttribs3fvNV")]);
1456   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs3svNV, table[_glapi_get_proc_offset("glVertexAttribs3svNV")]);
1457   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs4dvNV, table[_glapi_get_proc_offset("glVertexAttribs4dvNV")]);
1458   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs4fvNV, table[_glapi_get_proc_offset("glVertexAttribs4fvNV")]);
1459   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs4svNV, table[_glapi_get_proc_offset("glVertexAttribs4svNV")]);
1460   EXPECT_EQ((_glapi_proc) __indirect_glVertexAttribs4ubvNV, table[_glapi_get_proc_offset("glVertexAttribs4ubvNV")]);
1461}
1462
1463TEST_F(IndirectAPI, NV_point_sprite)
1464{
1465   EXPECT_EQ((_glapi_proc) __indirect_glPointParameteriNV, table[_glapi_get_proc_offset("glPointParameteriNV")]);
1466   EXPECT_EQ((_glapi_proc) __indirect_glPointParameterivNV, table[_glapi_get_proc_offset("glPointParameterivNV")]);
1467}
1468
1469TEST_F(IndirectAPI, EXT_stencil_two_side)
1470{
1471   EXPECT_EQ((_glapi_proc) __indirect_glActiveStencilFaceEXT, table[_glapi_get_proc_offset("glActiveStencilFaceEXT")]);
1472}
1473
1474TEST_F(IndirectAPI, NV_fragment_program)
1475{
1476   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramNamedParameterdvNV, table[_glapi_get_proc_offset("glGetProgramNamedParameterdvNV")]);
1477   EXPECT_EQ((_glapi_proc) __indirect_glGetProgramNamedParameterfvNV, table[_glapi_get_proc_offset("glGetProgramNamedParameterfvNV")]);
1478   EXPECT_EQ((_glapi_proc) __indirect_glProgramNamedParameter4dNV, table[_glapi_get_proc_offset("glProgramNamedParameter4dNV")]);
1479   EXPECT_EQ((_glapi_proc) __indirect_glProgramNamedParameter4dvNV, table[_glapi_get_proc_offset("glProgramNamedParameter4dvNV")]);
1480   EXPECT_EQ((_glapi_proc) __indirect_glProgramNamedParameter4fNV, table[_glapi_get_proc_offset("glProgramNamedParameter4fNV")]);
1481   EXPECT_EQ((_glapi_proc) __indirect_glProgramNamedParameter4fvNV, table[_glapi_get_proc_offset("glProgramNamedParameter4fvNV")]);
1482}
1483
1484TEST_F(IndirectAPI, EXT_blend_equation_separate)
1485{
1486   EXPECT_EQ((_glapi_proc) __indirect_glBlendEquationSeparateEXT, table[_glapi_get_proc_offset("glBlendEquationSeparateEXT")]);
1487}
1488
1489TEST_F(IndirectAPI, EXT_framebuffer_object)
1490{
1491   EXPECT_EQ((_glapi_proc) __indirect_glBindFramebufferEXT, table[_glapi_get_proc_offset("glBindFramebufferEXT")]);
1492   EXPECT_EQ((_glapi_proc) __indirect_glBindRenderbufferEXT, table[_glapi_get_proc_offset("glBindRenderbufferEXT")]);
1493   EXPECT_EQ((_glapi_proc) __indirect_glCheckFramebufferStatusEXT, table[_glapi_get_proc_offset("glCheckFramebufferStatusEXT")]);
1494   EXPECT_EQ((_glapi_proc) __indirect_glDeleteFramebuffersEXT, table[_glapi_get_proc_offset("glDeleteFramebuffersEXT")]);
1495   EXPECT_EQ((_glapi_proc) __indirect_glDeleteRenderbuffersEXT, table[_glapi_get_proc_offset("glDeleteRenderbuffersEXT")]);
1496   EXPECT_EQ((_glapi_proc) __indirect_glFramebufferRenderbufferEXT, table[_glapi_get_proc_offset("glFramebufferRenderbufferEXT")]);
1497   EXPECT_EQ((_glapi_proc) __indirect_glFramebufferTexture1DEXT, table[_glapi_get_proc_offset("glFramebufferTexture1DEXT")]);
1498   EXPECT_EQ((_glapi_proc) __indirect_glFramebufferTexture2DEXT, table[_glapi_get_proc_offset("glFramebufferTexture2DEXT")]);
1499   EXPECT_EQ((_glapi_proc) __indirect_glFramebufferTexture3DEXT, table[_glapi_get_proc_offset("glFramebufferTexture3DEXT")]);
1500   EXPECT_EQ((_glapi_proc) __indirect_glGenFramebuffersEXT, table[_glapi_get_proc_offset("glGenFramebuffersEXT")]);
1501   EXPECT_EQ((_glapi_proc) __indirect_glGenRenderbuffersEXT, table[_glapi_get_proc_offset("glGenRenderbuffersEXT")]);
1502   EXPECT_EQ((_glapi_proc) __indirect_glGenerateMipmapEXT, table[_glapi_get_proc_offset("glGenerateMipmapEXT")]);
1503   EXPECT_EQ((_glapi_proc) __indirect_glGetFramebufferAttachmentParameterivEXT, table[_glapi_get_proc_offset("glGetFramebufferAttachmentParameterivEXT")]);
1504   EXPECT_EQ((_glapi_proc) __indirect_glGetRenderbufferParameterivEXT, table[_glapi_get_proc_offset("glGetRenderbufferParameterivEXT")]);
1505   EXPECT_EQ((_glapi_proc) __indirect_glIsFramebufferEXT, table[_glapi_get_proc_offset("glIsFramebufferEXT")]);
1506   EXPECT_EQ((_glapi_proc) __indirect_glIsRenderbufferEXT, table[_glapi_get_proc_offset("glIsRenderbufferEXT")]);
1507   EXPECT_EQ((_glapi_proc) __indirect_glRenderbufferStorageEXT, table[_glapi_get_proc_offset("glRenderbufferStorageEXT")]);
1508}
1509
1510TEST_F(IndirectAPI, EXT_framebuffer_blit)
1511{
1512   EXPECT_EQ((_glapi_proc) __indirect_glBlitFramebufferEXT, table[_glapi_get_proc_offset("glBlitFramebufferEXT")]);
1513}
1514
1515TEST_F(IndirectAPI, EXT_texture_array)
1516{
1517   EXPECT_EQ((_glapi_proc) __indirect_glFramebufferTextureLayerEXT, table[_glapi_get_proc_offset("glFramebufferTextureLayerEXT")]);
1518}
1519