Mesa (master): gles2: Add an ABI-check test
Matt Turner
mattst88 at kemper.freedesktop.org
Tue Mar 19 19:05:11 UTC 2013
Module: Mesa
Branch: master
Commit: 322c840bea5838782f927a2c1d1711b0d7d50d29
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=322c840bea5838782f927a2c1d1711b0d7d50d29
Author: Matt Turner <mattst88 at gmail.com>
Date: Tue Jan 29 17:37:02 2013 -0800
gles2: Add an ABI-check test
Checks that no functions are exported that are not part of the ABI.
Note that currently we are exporting functions that are aliased to
functions that are part of the ABI. They shouldn't be exported, but the
XML descriptions don't adequately describe this case.
---
src/mapi/es2api/ABI-check | 292 +++++++++++++++++++++++++++++++++++++++++++
src/mapi/es2api/Makefile.am | 2 +
2 files changed, 294 insertions(+), 0 deletions(-)
diff --git a/src/mapi/es2api/ABI-check b/src/mapi/es2api/ABI-check
new file mode 100755
index 0000000..4a61050
--- /dev/null
+++ b/src/mapi/es2api/ABI-check
@@ -0,0 +1,292 @@
+#!/bin/bash
+
+# Print defined gl.* functions not in GL ES 3.0 or in
+# (FIXME, none of these should be part of the ABI)
+# GL_EXT_discard_framebuffer
+# GL_EXT_map_buffer_range
+# GL_EXT_multi_draw_arrays
+# GL_NV_draw_buffers
+# GL_NV_read_buffer
+# GL_OES_EGL_image
+# GL_OES_get_program_binary
+# GL_OES_mapbuffer
+# GL_OES_texture_3D
+# GL_OES_vertex_array_object
+
+FUNCS=$(nm -D --defined-only ${1-.libs/libGLESv2.so.2} | grep -o 'T gl.*' | cut -c 3- | while read func; do
+( grep -q "^$func$" || echo $func ) <<EOF
+glActiveTexture
+glAttachShader
+glBeginQuery
+glBeginTransformFeedback
+glBindAttribLocation
+glBindBuffer
+glBindBufferBase
+glBindBufferRange
+glBindFramebuffer
+glBindRenderbuffer
+glBindSampler
+glBindTexture
+glBindTransformFeedback
+glBindVertexArray
+glBindVertexArrayOES
+glBlendColor
+glBlendEquation
+glBlendEquationSeparate
+glBlendFunc
+glBlendFuncSeparate
+glBlitFramebuffer
+glBufferData
+glBufferSubData
+glCheckFramebufferStatus
+glClear
+glClearBufferfi
+glClearBufferfv
+glClearBufferiv
+glClearBufferuiv
+glClearColor
+glClearDepthf
+glClearStencil
+glClientWaitSync
+glColorMask
+glCompileShader
+glCompressedTexImage2D
+glCompressedTexImage3D
+glCompressedTexImage3DOES
+glCompressedTexSubImage2D
+glCompressedTexSubImage3D
+glCompressedTexSubImage3DOES
+glCopyBufferSubData
+glCopyTexImage2D
+glCopyTexSubImage2D
+glCopyTexSubImage3D
+glCopyTexSubImage3DOES
+glCreateProgram
+glCreateShader
+glCullFace
+glDeleteBuffers
+glDeleteFramebuffers
+glDeleteProgram
+glDeleteQueries
+glDeleteRenderbuffers
+glDeleteSamplers
+glDeleteShader
+glDeleteSync
+glDeleteTextures
+glDeleteTransformFeedbacks
+glDeleteVertexArrays
+glDeleteVertexArraysOES
+glDepthFunc
+glDepthMask
+glDepthRangef
+glDetachShader
+glDisable
+glDisableVertexAttribArray
+glDiscardFramebufferEXT
+glDrawArrays
+glDrawArraysInstanced
+glDrawBuffers
+glDrawBuffersNV
+glDrawElements
+glDrawElementsInstanced
+glDrawRangeElements
+glEGLImageTargetRenderbufferStorageOES
+glEGLImageTargetTexture2DOES
+glEnable
+glEnableVertexAttribArray
+glEndQuery
+glEndTransformFeedback
+glFenceSync
+glFinish
+glFlush
+glFlushMappedBufferRange
+glFlushMappedBufferRangeEXT
+glFramebufferRenderbuffer
+glFramebufferTexture2D
+glFramebufferTexture3DOES
+glFramebufferTextureLayer
+glFrontFace
+glGenBuffers
+glGenerateMipmap
+glGenFramebuffers
+glGenQueries
+glGenRenderbuffers
+glGenSamplers
+glGenTextures
+glGenTransformFeedbacks
+glGenVertexArrays
+glGenVertexArraysOES
+glGetActiveAttrib
+glGetActiveUniform
+glGetActiveUniformBlockiv
+glGetActiveUniformBlockName
+glGetActiveUniformsiv
+glGetAttachedShaders
+glGetAttribLocation
+glGetBooleanv
+glGetBufferParameteri64v
+glGetBufferParameteriv
+glGetBufferPointerv
+glGetBufferPointervOES
+glGetError
+glGetFloatv
+glGetFragDataLocation
+glGetFramebufferAttachmentParameteriv
+glGetInteger64i_v
+glGetInteger64v
+glGetIntegeri_v
+glGetIntegerv
+glGetInternalformativ
+glGetProgramBinary
+glGetProgramBinaryOES
+glGetProgramInfoLog
+glGetProgramiv
+glGetQueryiv
+glGetQueryObjectuiv
+glGetRenderbufferParameteriv
+glGetSamplerParameterfv
+glGetSamplerParameteriv
+glGetShaderInfoLog
+glGetShaderiv
+glGetShaderPrecisionFormat
+glGetShaderSource
+glGetString
+glGetStringi
+glGetSynciv
+glGetTexParameterfv
+glGetTexParameteriv
+glGetTransformFeedbackVarying
+glGetUniformBlockIndex
+glGetUniformfv
+glGetUniformIndices
+glGetUniformiv
+glGetUniformLocation
+glGetUniformuiv
+glGetVertexAttribfv
+glGetVertexAttribIiv
+glGetVertexAttribIuiv
+glGetVertexAttribiv
+glGetVertexAttribPointerv
+glHint
+glInvalidateFramebuffer
+glInvalidateSubFramebuffer
+glIsBuffer
+glIsEnabled
+glIsFramebuffer
+glIsProgram
+glIsQuery
+glIsRenderbuffer
+glIsSampler
+glIsShader
+glIsSync
+glIsTexture
+glIsTransformFeedback
+glIsVertexArray
+glIsVertexArrayOES
+glLineWidth
+glLinkProgram
+glMapBufferOES
+glMapBufferRange
+glMapBufferRangeEXT
+glMultiDrawArraysEXT
+glMultiDrawElementsEXT
+glPauseTransformFeedback
+glPixelStorei
+glPolygonOffset
+glProgramBinary
+glProgramBinaryOES
+glProgramParameteri
+glReadBuffer
+glReadBufferNV
+glReadPixels
+glReleaseShaderCompiler
+glRenderbufferStorage
+glRenderbufferStorageMultisample
+glResumeTransformFeedback
+glSampleCoverage
+glSamplerParameterf
+glSamplerParameterfv
+glSamplerParameteri
+glSamplerParameteriv
+glScissor
+glShaderBinary
+glShaderSource
+glStencilFunc
+glStencilFuncSeparate
+glStencilMask
+glStencilMaskSeparate
+glStencilOp
+glStencilOpSeparate
+glTexImage2D
+glTexImage3D
+glTexImage3DOES
+glTexParameterf
+glTexParameterfv
+glTexParameteri
+glTexParameteriv
+glTexStorage2D
+glTexStorage3D
+glTexSubImage2D
+glTexSubImage3D
+glTexSubImage3DOES
+glTransformFeedbackVaryings
+glUniform1f
+glUniform1fv
+glUniform1i
+glUniform1iv
+glUniform1ui
+glUniform1uiv
+glUniform2f
+glUniform2fv
+glUniform2i
+glUniform2iv
+glUniform2ui
+glUniform2uiv
+glUniform3f
+glUniform3fv
+glUniform3i
+glUniform3iv
+glUniform3ui
+glUniform3uiv
+glUniform4f
+glUniform4fv
+glUniform4i
+glUniform4iv
+glUniform4ui
+glUniform4uiv
+glUniformBlockBinding
+glUniformMatrix2fv
+glUniformMatrix2x3fv
+glUniformMatrix2x4fv
+glUniformMatrix3fv
+glUniformMatrix3x2fv
+glUniformMatrix3x4fv
+glUniformMatrix4fv
+glUniformMatrix4x2fv
+glUniformMatrix4x3fv
+glUnmapBuffer
+glUnmapBufferOES
+glUseProgram
+glValidateProgram
+glVertexAttrib1f
+glVertexAttrib1fv
+glVertexAttrib2f
+glVertexAttrib2fv
+glVertexAttrib3f
+glVertexAttrib3fv
+glVertexAttrib4f
+glVertexAttrib4fv
+glVertexAttribDivisor
+glVertexAttribI4i
+glVertexAttribI4iv
+glVertexAttribI4ui
+glVertexAttribI4uiv
+glVertexAttribIPointer
+glVertexAttribPointer
+glViewport
+glWaitSync
+EOF
+done)
+
+test ! -n "$FUNCS" || echo $FUNCS
+test ! -n "$FUNCS"
diff --git a/src/mapi/es2api/Makefile.am b/src/mapi/es2api/Makefile.am
index 0538f73..9f79536 100644
--- a/src/mapi/es2api/Makefile.am
+++ b/src/mapi/es2api/Makefile.am
@@ -28,6 +28,8 @@ AM_CPPFLAGS = \
AM_CFLAGS = $(VISIBILITY_CFLAGS)
+TESTS = ABI-check
+
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = glesv2.pc
More information about the mesa-commit
mailing list