diff --git a/tests/src/mocks/generation/CleanUp_openGL_mock.py b/tests/src/mocks/generation/CleanUp_openGL_mock.py new file mode 100644 index 0000000000000000000000000000000000000000..4fbd83e282c830b61488c67530bf0f6291ebe7ea --- /dev/null +++ b/tests/src/mocks/generation/CleanUp_openGL_mock.py @@ -0,0 +1,114 @@ +#------------------------------------------------------------------------------ +# Project Phoenix +# +# Copyright (c) 2017-2018 RWTH Aachen University, Germany, +# Virtual Reality & Immersive Visualization Group. +#------------------------------------------------------------------------------ +# License +# +# Licensed under the 3-Clause BSD License (the "License"); +# you may not use this file except in compliance with the License. +# See the file LICENSE for the full text. +# You may obtain a copy of the License at +# +# https://opensource.org/licenses/BSD-3-Clause +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#------------------------------------------------------------------------------ +import textwrap +import os +from collections import defaultdict + +params_to_be_sorted = ["functions_to_mock", "allow_calls_provided", + "gl_types"] + +def sortListAlphabetically(content): + prefix = content[0:content.find("=")] + print("... sorting " + prefix) + + sub_content = content[content.find("[")+1:content.find("']")] + params = sub_content.split("',") + params = sorted(params, key=lambda s: s.lower()) + + if (params_to_be_sorted[1] in prefix): + sub_content = sortGlewBeforeGl(params) + elif (params_to_be_sorted[2] in prefix): + sub_content = sortGLBeforeRest(params) + else: + sub_content = ', '.join(str(val)+"'" for val in params) + + return (prefix+ " = [" + sub_content+"]") + +def sortGlewBeforeGl(params): + d = defaultdict(list) + for val in params: + d["glew" in val].append(val) + sortedParams = ','.join(str(p)+"'" for p in d[True]) + sortedParams += ',' + sortedParams += ','.join(str(p)+"'" for p in d[False]) + return sortedParams + +def sortGLBeforeRest(params): + d = defaultdict(list) + for val in params: + d["GL" in val].append(val) + sortedParams = ', '.join(str(p)+"'" for p in d[True]) + sortedParams += ',' + sortedParams += ','.join(str(p)+"'" for p in d[False]) + return sortedParams + + +def printToFile(file, content): + nr_of_blanks = len(content[0:content.find("[")+1]) + if (params_to_be_sorted[1] in content): + printWithLineBreakAtComma(file, content, nr_of_blanks) + else: + printWith80CharacterLimit(file, content, nr_of_blanks) + +def printWith80CharacterLimit(file, content, nr_of_blanks): + input = ('\n'+' '*nr_of_blanks).join(textwrap.wrap(content, + 80-nr_of_blanks)) + input += "\n" + file.write(input) + +def printWithLineBreakAtComma(file, content, nr_of_blanks): + content = content.replace ("',", "',\n") + params = content.split("\n") + for val in params: + file.write(val+"\n" if val == params[0] else ' '*(nr_of_blanks)+val+"\n") + + +def main(): + file_in = open("Create_openGL_mock.py","r") + file_out = open("tmp.py","w") + + collecting_tbs_lines = False + lines_tbs = '' + + for line in file_in: + if any(val+"=[" in line.replace(' ', '') for val in params_to_be_sorted): + collecting_tbs_lines = True + + if collecting_tbs_lines: + lines_tbs += line.replace('\n', '').replace('\t', '').replace(' ', '') + if "]" in line: + collecting_tbs_lines = False + printToFile(file_out, sortListAlphabetically(lines_tbs)) + lines_tbs = '' + else: + file_out.write(line) + + file_in.close() + os.remove("Create_openGL_mock.py") + file_out.close() + os.rename("tmp.py", "Create_openGL_mock.py") + print "Done." + + +print "Cleanup openGL mock ..." +main() + diff --git a/tests/src/mocks/generation/Create_openGL_mock.py b/tests/src/mocks/generation/Create_openGL_mock.py index 02925abc19d92dbcfdeab722e360395279a86910..07c1944f1a3092d356c28ca23dee79d73bf1e640 100644 --- a/tests/src/mocks/generation/Create_openGL_mock.py +++ b/tests/src/mocks/generation/Create_openGL_mock.py @@ -22,79 +22,185 @@ import sys, getopt #functions you want to mock should be put in this list -functions_to_mock =['glClear', 'glEnable', 'glIsEnabled', 'glDisable', 'glClearColor', 'glCreateProgram', 'glCreateShader', 'glNamedBufferData', 'glShaderSource', - 'glCompileShader', 'glAttachShader', 'glBindVertexArray', 'glCreateBuffers', 'glCreateVertexArrays', 'glEnableVertexArrayAttrib', - 'glGetUniformLocation', 'glIsBuffer', 'glIsProgram', 'glIsVertexArray', 'glLinkProgram', 'glUniformMatrix4fv', 'glUniform3fv', - 'glUniform1f', 'glUseProgram', 'glVertexArrayElementBuffer', 'glVertexArrayVertexBuffer', 'glDrawElements', 'glVertexArrayAttribFormat', - 'glGetProgramiv', 'glGetProgramInfoLog', 'glProgramUniform3fv', 'glProgramUniformMatrix4fv', 'glGetPointerv', - 'glClearDepth', 'glClearStencil', 'glColorMask', 'glDepthMask', 'glReadPixels', '__glewStencilMaskSeparate', '__glewClampColor', - '__glewColorMaski', '__glewClearDepthf', '__glewBlitNamedFramebuffer', '__glewCheckNamedFramebufferStatus', '__glewClearNamedFramebufferfi', - '__glewClearNamedFramebufferfv', '__glewClearNamedFramebufferiv', '__glewClearNamedFramebufferuiv', '__glewCreateFramebuffers', - '__glewGetNamedFramebufferAttachmentParameteriv', '__glewGetNamedFramebufferParameteriv', '__glewInvalidateNamedFramebufferData', - '__glewInvalidateNamedFramebufferSubData', '__glewNamedFramebufferDrawBuffer', '__glewNamedFramebufferDrawBuffers', '__glewNamedFramebufferParameteri', - '__glewNamedFramebufferReadBuffer', '__glewNamedFramebufferRenderbuffer', '__glewDeleteFramebuffers', '__glewIsFramebuffer', '__glewCopyImageSubData', - '__glewCreateRenderbuffers', '__glewGetNamedRenderbufferParameteriv', '__glewNamedRenderbufferStorage', '__glewNamedRenderbufferStorageMultisample', - '__glewBindRenderbuffer', '__glewDeleteRenderbuffers', '__glewIsRenderbuffer', '__glewGetInternalformativ', '__glewGetInternalformati64v', - 'glFinish', 'glFlush', 'glGetError', 'glGetIntegerv', '__glewGetGraphicsResetStatus', '__glewBindAttribLocation', '__glewDeleteProgram', '__glewDetachShader', - '__glewGetActiveAttrib', '__glewGetActiveUniform', '__glewGetAttachedShaders', '__glewGetAttribLocation', '__glewGetUniformfv', '__glewGetUniformiv', - '__glewValidateProgram', '__glewBindFragDataLocation', '__glewGetFragDataLocation', '__glewGetTransformFeedbackVarying', '__glewGetUniformuiv', - '__glewTransformFeedbackVaryings', '__glewProgramUniformHandleui64ARB', '__glewProgramUniformHandleui64vARB', '__glewBindFragDataLocationIndexed', - '__glewGetFragDataIndex', '__glewProgramParameteri', '__glewGetUniformdv', '__glewGetProgramInterfaceiv', '__glewGetProgramResourceIndex', - '__glewGetProgramResourceLocation', '__glewGetProgramResourceLocationIndex', '__glewGetProgramResourceName', '__glewGetProgramResourceiv', - '__glewProgramUniform1d', '__glewProgramUniform1dv', '__glewProgramUniform1f', '__glewProgramUniform1fv', '__glewProgramUniform1i', '__glewProgramUniform1iv', - '__glewProgramUniform1ui', '__glewProgramUniform1uiv', '__glewProgramUniform2d', '__glewProgramUniform2dv', '__glewProgramUniform2f', '__glewProgramUniform2fv', - '__glewProgramUniform2i', '__glewProgramUniform2iv', '__glewProgramUniform2ui', '__glewProgramUniform2uiv', '__glewProgramUniform3d', '__glewProgramUniform3dv', - '__glewProgramUniform3f', '__glewProgramUniform3i', '__glewProgramUniform3iv', '__glewProgramUniform3ui', '__glewProgramUniform3uiv', '__glewProgramUniform4d', - '__glewProgramUniform4dv', '__glewProgramUniform4f', '__glewProgramUniform4fv', '__glewProgramUniform4i', '__glewProgramUniform4iv', '__glewProgramUniform4ui', - '__glewProgramUniform4uiv', '__glewProgramUniformMatrix2dv', '__glewProgramUniformMatrix2fv', '__glewProgramUniformMatrix2x3dv', '__glewProgramUniformMatrix2x3fv', - '__glewProgramUniformMatrix2x4dv', '__glewProgramUniformMatrix2x4fv', '__glewProgramUniformMatrix3dv', '__glewProgramUniformMatrix3fv', '__glewProgramUniformMatrix3x2dv', - '__glewProgramUniformMatrix3x2fv', '__glewProgramUniformMatrix3x4dv', '__glewProgramUniformMatrix3x4fv', '__glewProgramUniformMatrix4dv', '__glewProgramUniformMatrix4x2dv', - '__glewProgramUniformMatrix4x2fv', '__glewProgramUniformMatrix4x3dv', '__glewProgramUniformMatrix4x3fv', '__glewGetActiveAtomicCounterBufferiv', '__glewShaderStorageBlockBinding', - '__glewGetActiveSubroutineName', '__glewGetActiveSubroutineUniformName', '__glewGetActiveSubroutineUniformiv', '__glewGetProgramStageiv', '__glewGetSubroutineIndex', - '__glewGetSubroutineUniformLocation', '__glewGetUniformSubroutineuiv', '__glewUniformSubroutinesuiv', '__glewGetActiveUniformBlockName', '__glewGetActiveUniformBlockiv', - '__glewGetActiveUniformName', '__glewGetActiveUniformsiv', '__glewGetUniformBlockIndex', '__glewGetUniformIndices', '__glewUniformBlockBinding', '__glewDeleteShader', - '__glewGetShaderInfoLog', '__glewGetShaderSource', '__glewGetShaderiv', '__glewIsShader', '__glewSpecializeShader', '__glewReleaseShaderCompiler', '__glewShaderBinary', - '__glewIsImageHandleResidentARB', '__glewMakeImageHandleNonResidentARB', '__glewMakeImageHandleResidentARB', '__glewIsTextureHandleResidentARB', '__glewMakeTextureHandleNonResidentARB', - '__glewMakeTextureHandleResidentARB', '__glewDeleteBuffers', '__glewClearNamedBufferData', '__glewClearNamedBufferSubData','__glewCopyNamedBufferSubData', - '__glewFlushMappedNamedBufferRange', '__glewGetNamedBufferParameteri64v', '__glewGetNamedBufferParameteriv', '__glewGetNamedBufferPointerv', 'glViewport', - '__glewGetNamedBufferSubData', '__glewMapNamedBuffer', '__glewMapNamedBufferRange', '__glewNamedBufferStorage', '__glewNamedBufferSubData', - '__glewUnmapNamedBuffer', '__glewInvalidateBufferData', '__glewInvalidateBufferSubData', '__glewDisableVertexArrayAttrib', '__glewGetVertexArrayIndexed64iv', - '__glewGetVertexArrayIndexediv', '__glewGetVertexArrayiv', '__glewVertexArrayAttribBinding', '__glewVertexArrayAttribIFormat', '__glewVertexArrayAttribLFormat', - '__glewVertexArrayBindingDivisor', '__glewDeleteVertexArrays', 'glBindTexture', 'glDeleteTextures', '__glewCreateTextures', '__glewNamedFramebufferTexture', - '__glewTextureStorage2D', '__glewBindFramebuffer', 'glIsTexture', '__glewGetTextureHandleARB', '__glewGenerateTextureMipmap', '__glewTextureParameteri', '__glewTextureSubImage2D', - '__glewBindBufferBase', '__glewBindBuffer', '__glewBindBufferRange', '__glewCreateShaderProgramv', 'glDepthRange', '__glewDepthRangef', '__glewDepthRangeIndexed', '__glewViewportIndexedf', 'glPolygonMode', 'glDebugMessageCallback', - '__glewDebugMessageControl', '__glewDebugMessageInsert', '__glewGetDebugMessageLog', '__glewGetObjectPtrLabel', '__glewPopDebugGroup', '__glewPushDebugGroup', '__glewClientWaitSync', - '__glewDeleteSync', '__glewFenceSync', '__glewGetSynciv', '__glewIsSync', '__glewWaitSync', '__glewObjectPtrLabel', '__glewTextureStorage3D', '__glewTextureSubImage3D', 'glDrawArrays'] +functions_to_mock = ['__glewBindAttribLocation', + '__glewBindBuffer', '__glewBindBufferBase', + '__glewBindBufferRange', '__glewBindFragDataLocation', + '__glewBindFragDataLocationIndexed', + '__glewBindFramebuffer', '__glewBindRenderbuffer', + '__glewBlitNamedFramebuffer', + '__glewCheckNamedFramebufferStatus', '__glewClampColor', + '__glewClearDepthf', '__glewClearNamedBufferData', + '__glewClearNamedBufferSubData', + '__glewClearNamedFramebufferfi', + '__glewClearNamedFramebufferfv', + '__glewClearNamedFramebufferiv', + '__glewClearNamedFramebufferuiv', '__glewClientWaitSync', + '__glewColorMaski', '__glewCopyImageSubData', + '__glewCopyNamedBufferSubData', '__glewCreateFramebuffers', + '__glewCreateRenderbuffers', '__glewCreateShaderProgramv', + '__glewCreateTextures', '__glewDebugMessageControl', + '__glewDebugMessageInsert', '__glewDeleteBuffers', + '__glewDeleteFramebuffers', '__glewDeleteProgram', + '__glewDeleteRenderbuffers', '__glewDeleteShader', + '__glewDeleteSync', '__glewDeleteVertexArrays', + '__glewDepthRangef', '__glewDepthRangeIndexed', + '__glewDetachShader', '__glewDisableVertexArrayAttrib', + '__glewFenceSync', '__glewFlushMappedNamedBufferRange', + '__glewGenerateTextureMipmap', + '__glewGetActiveAtomicCounterBufferiv', + '__glewGetActiveAttrib', '__glewGetActiveSubroutineName', + '__glewGetActiveSubroutineUniformiv', + '__glewGetActiveSubroutineUniformName', + '__glewGetActiveUniform', '__glewGetActiveUniformBlockiv', + '__glewGetActiveUniformBlockName', + '__glewGetActiveUniformName', '__glewGetActiveUniformsiv', + '__glewGetAttachedShaders', '__glewGetAttribLocation', + '__glewGetDebugMessageLog', '__glewGetFragDataIndex', + '__glewGetFragDataLocation', + '__glewGetGraphicsResetStatus', + '__glewGetInternalformati64v', '__glewGetInternalformativ', + '__glewGetNamedBufferParameteri64v', + '__glewGetNamedBufferParameteriv', + '__glewGetNamedBufferPointerv', + '__glewGetNamedBufferSubData', + '__glewGetNamedFramebufferAttachmentParameteriv', + '__glewGetNamedFramebufferParameteriv', + '__glewGetNamedRenderbufferParameteriv', + '__glewGetObjectPtrLabel', '__glewGetProgramInterfaceiv', + '__glewGetProgramResourceIndex', + '__glewGetProgramResourceiv', + '__glewGetProgramResourceLocation', + '__glewGetProgramResourceLocationIndex', + '__glewGetProgramResourceName', '__glewGetProgramStageiv', + '__glewGetShaderInfoLog', '__glewGetShaderiv', + '__glewGetShaderSource', '__glewGetSubroutineIndex', + '__glewGetSubroutineUniformLocation', '__glewGetSynciv', + '__glewGetTextureHandleARB', + '__glewGetTransformFeedbackVarying', + '__glewGetUniformBlockIndex', '__glewGetUniformdv', + '__glewGetUniformfv', '__glewGetUniformIndices', + '__glewGetUniformiv', '__glewGetUniformSubroutineuiv', + '__glewGetUniformuiv', '__glewGetVertexArrayIndexed64iv', + '__glewGetVertexArrayIndexediv', '__glewGetVertexArrayiv', + '__glewInvalidateBufferData', + '__glewInvalidateBufferSubData', + '__glewInvalidateNamedFramebufferData', + '__glewInvalidateNamedFramebufferSubData', + '__glewIsFramebuffer', '__glewIsImageHandleResidentARB', + '__glewIsRenderbuffer', '__glewIsShader', '__glewIsSync', + '__glewIsTextureHandleResidentARB', + '__glewMakeImageHandleNonResidentARB', + '__glewMakeImageHandleResidentARB', + '__glewMakeTextureHandleNonResidentARB', + '__glewMakeTextureHandleResidentARB', + '__glewMapNamedBuffer', '__glewMapNamedBufferRange', + '__glewNamedBufferStorage', '__glewNamedBufferSubData', + '__glewNamedFramebufferDrawBuffer', + '__glewNamedFramebufferDrawBuffers', + '__glewNamedFramebufferParameteri', + '__glewNamedFramebufferReadBuffer', + '__glewNamedFramebufferRenderbuffer', + '__glewNamedFramebufferTexture', + '__glewNamedRenderbufferStorage', + '__glewNamedRenderbufferStorageMultisample', + '__glewObjectPtrLabel', '__glewPopDebugGroup', + '__glewProgramParameteri', '__glewProgramUniform1d', + '__glewProgramUniform1dv', '__glewProgramUniform1f', + '__glewProgramUniform1fv', '__glewProgramUniform1i', + '__glewProgramUniform1iv', '__glewProgramUniform1ui', + '__glewProgramUniform1uiv', '__glewProgramUniform2d', + '__glewProgramUniform2dv', '__glewProgramUniform2f', + '__glewProgramUniform2fv', '__glewProgramUniform2i', + '__glewProgramUniform2iv', '__glewProgramUniform2ui', + '__glewProgramUniform2uiv', '__glewProgramUniform3d', + '__glewProgramUniform3dv', '__glewProgramUniform3f', + '__glewProgramUniform3i', '__glewProgramUniform3iv', + '__glewProgramUniform3ui', '__glewProgramUniform3uiv', + '__glewProgramUniform4d', '__glewProgramUniform4dv', + '__glewProgramUniform4f', '__glewProgramUniform4fv', + '__glewProgramUniform4i', '__glewProgramUniform4iv', + '__glewProgramUniform4ui', '__glewProgramUniform4uiv', + '__glewProgramUniformHandleui64ARB', + '__glewProgramUniformHandleui64vARB', + '__glewProgramUniformMatrix2dv', + '__glewProgramUniformMatrix2fv', + '__glewProgramUniformMatrix2x3dv', + '__glewProgramUniformMatrix2x3fv', + '__glewProgramUniformMatrix2x4dv', + '__glewProgramUniformMatrix2x4fv', + '__glewProgramUniformMatrix3dv', + '__glewProgramUniformMatrix3fv', + '__glewProgramUniformMatrix3x2dv', + '__glewProgramUniformMatrix3x2fv', + '__glewProgramUniformMatrix3x4dv', + '__glewProgramUniformMatrix3x4fv', + '__glewProgramUniformMatrix4dv', + '__glewProgramUniformMatrix4x2dv', + '__glewProgramUniformMatrix4x2fv', + '__glewProgramUniformMatrix4x3dv', + '__glewProgramUniformMatrix4x3fv', '__glewPushDebugGroup', + '__glewReleaseShaderCompiler', '__glewShaderBinary', + '__glewShaderStorageBlockBinding', + '__glewSpecializeShader', '__glewStencilMaskSeparate', + '__glewTextureParameteri', '__glewTextureStorage2D', + '__glewTextureStorage3D', '__glewTextureSubImage2D', + '__glewTextureSubImage3D', + '__glewTransformFeedbackVaryings', + '__glewUniformBlockBinding', '__glewUniformSubroutinesuiv', + '__glewUnmapNamedBuffer', '__glewValidateProgram', + '__glewVertexArrayAttribBinding', + '__glewVertexArrayAttribIFormat', + '__glewVertexArrayAttribLFormat', + '__glewVertexArrayBindingDivisor', + '__glewViewportIndexedf', '__glewWaitSync', + 'glAttachShader', 'glBindTexture', 'glBindVertexArray', + 'glClear', 'glClearColor', 'glClearDepth', + 'glClearStencil', 'glColorMask', 'glCompileShader', + 'glCreateBuffers', 'glCreateProgram', 'glCreateShader', + 'glCreateVertexArrays', 'glDebugMessageCallback', + 'glDeleteTextures', 'glDepthMask', 'glDepthRange', + 'glDisable', 'glDrawArrays', 'glDrawElements', 'glEnable', + 'glEnableVertexArrayAttrib', 'glFinish', 'glFlush', + 'glGetError', 'glGetIntegerv', 'glGetPointerv', + 'glGetProgramInfoLog', 'glGetProgramiv', + 'glGetUniformLocation', 'glIsBuffer', 'glIsEnabled', + 'glIsProgram', 'glIsTexture', 'glIsVertexArray', + 'glLinkProgram', 'glNamedBufferData', 'glPolygonMode', + 'glProgramUniform3fv', 'glProgramUniformMatrix4fv', + 'glReadPixels', 'glShaderSource', 'glUniform1f', + 'glUniform3fv', 'glUniformMatrix4fv', 'glUseProgram', + 'glVertexArrayAttribFormat', 'glVertexArrayElementBuffer', + 'glVertexArrayVertexBuffer', 'glViewport'] #allow calls you want to provide and not be auto generated -allow_calls_provided = ['ALLOW_CALL(open_gl_mock, glewInit()).RETURN(GLEW_OK);', - 'ALLOW_CALL(open_gl_mock, glCompileShader(gt(0u)));', - 'ALLOW_CALL(open_gl_mock, glCreateProgram()).RETURN(1u);', - 'ALLOW_CALL(open_gl_mock, glCreateShader(_)).RETURN(1u);' - 'ALLOW_CALL(open_gl_mock, glAttachShader(gt(0u), gt(0u)));', - 'ALLOW_CALL(open_gl_mock, glCreateBuffers(1, _)).SIDE_EFFECT(*_2 = 1);', - 'ALLOW_CALL(open_gl_mock, glCreateVertexArrays(0, _));', - 'ALLOW_CALL(open_gl_mock, glCreateVertexArrays(1, _)).SIDE_EFFECT(*_2 = 1);', - 'ALLOW_CALL(open_gl_mock, glIsBuffer(0u)).RETURN(false);', - 'ALLOW_CALL(open_gl_mock, glIsBuffer(gt(0u))).RETURN(true);', - 'ALLOW_CALL(open_gl_mock, glIsProgram(0u)).RETURN(false);', - 'ALLOW_CALL(open_gl_mock, glIsProgram(gt(0u))).RETURN(true);', - 'ALLOW_CALL(open_gl_mock, glIsVertexArray(0u)).RETURN(false);', - 'ALLOW_CALL(open_gl_mock, glIsVertexArray(gt(0u))).RETURN(true);', - 'ALLOW_CALL(open_gl_mock, glLinkProgram(gt(0u)));', - 'ALLOW_CALL(open_gl_mock, glGetProgramInfoLog(_, _, _, _)).SIDE_EFFECT(*_3 = 0);', - 'ALLOW_CALL(open_gl_mock, glGetProgramiv(_, _, _)).SIDE_EFFECT(*_3 = GL_TRUE);', - 'ALLOW_CALL(open_gl_mock, glIsFramebuffer(gt(0u))).RETURN(true);', - 'ALLOW_CALL(open_gl_mock, glCheckNamedFramebufferStatus(gt(0u),_)).RETURN(GL_FRAMEBUFFER_COMPLETE);'] - -#order does matter here, so prefixes of other types should come later -gl_types = ['GLuint64EXT', 'GLint64EXT', 'GLintptr', 'GLsizeiptr', 'GLint64', 'GLuint64', 'GLboolean', 'GLbyte', 'GLubyte', - 'GLint', 'GLuint', 'GLsizei', 'GLfixed', 'GLenum', 'GLsync', 'GLbitfield', 'GLhalf', 'GLfloat', 'GLclampf', - 'GLdouble', 'GLclampd', 'GLvoid', 'void', 'GLchar', 'GLshort', 'GLushort', 'GLclampx', - 'GLhandleARB', 'GLcharARB', 'GLintptrARB', 'GLsizeiptrARB', - 'GLvdpauSurfaceNV', 'GLeglClientBufferEXT', - 'GLDEBUGPROCAMD', 'GLDEBUGPROCARB', 'GLDEBUGPROC', 'GLLOGPROCREGAL', - 'cl_context', 'cl_event'] +allow_calls_provided = ['ALLOW_CALL(open_gl_mock,glewInit()).RETURN(GLEW_OK);', + 'ALLOW_CALL(open_gl_mock,glCheckNamedFramebufferStatus(gt(0u),_)).RETURN(GL_FRAMEBUFFER_COMPLETE);', + 'ALLOW_CALL(open_gl_mock,glCompileShader(gt(0u)));', + 'ALLOW_CALL(open_gl_mock,glCreateBuffers(1,_)).SIDE_EFFECT(*_2=1);', + 'ALLOW_CALL(open_gl_mock,glCreateProgram()).RETURN(1u);', + 'ALLOW_CALL(open_gl_mock,glCreateShader(_)).RETURN(1u);''ALLOW_CALL(open_gl_mock,glAttachShader(gt(0u),gt(0u)));', + 'ALLOW_CALL(open_gl_mock,glCreateVertexArrays(0,_));', + 'ALLOW_CALL(open_gl_mock,glCreateVertexArrays(1,_)).SIDE_EFFECT(*_2=1);', + 'ALLOW_CALL(open_gl_mock,glGetProgramInfoLog(_,_,_,_)).SIDE_EFFECT(*_3=0);', + 'ALLOW_CALL(open_gl_mock,glGetProgramiv(_,_,_)).SIDE_EFFECT(*_3=GL_TRUE);', + 'ALLOW_CALL(open_gl_mock,glIsBuffer(0u)).RETURN(false);', + 'ALLOW_CALL(open_gl_mock,glIsBuffer(gt(0u))).RETURN(true);', + 'ALLOW_CALL(open_gl_mock,glIsFramebuffer(gt(0u))).RETURN(true);', + 'ALLOW_CALL(open_gl_mock,glIsProgram(0u)).RETURN(false);', + 'ALLOW_CALL(open_gl_mock,glIsProgram(gt(0u))).RETURN(true);', + 'ALLOW_CALL(open_gl_mock,glIsVertexArray(0u)).RETURN(false);', + 'ALLOW_CALL(open_gl_mock,glIsVertexArray(gt(0u))).RETURN(true);', + 'ALLOW_CALL(open_gl_mock,glLinkProgram(gt(0u)));'] + +gl_types = ['GLbitfield', 'GLboolean', 'GLbyte', 'GLchar', + 'GLcharARB', 'GLclampd', 'GLclampf', 'GLclampx', 'GLDEBUGPROC', + 'GLDEBUGPROCAMD', 'GLDEBUGPROCARB', 'GLdouble', + 'GLeglClientBufferEXT', 'GLenum', 'GLfixed', 'GLfloat', 'GLhalf', + 'GLhandleARB', 'GLint', 'GLint64', 'GLint64EXT', 'GLintptr', + 'GLintptrARB', 'GLLOGPROCREGAL', 'GLshort', 'GLsizei', 'GLsizeiptr', + 'GLsizeiptrARB', 'GLsync', 'GLubyte', 'GLuint', 'GLuint64', + 'GLuint64EXT', 'GLushort', 'GLvdpauSurfaceNV', + 'GLvoid','cl_context','cl_event','void'] functions = []