diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/spec/ext_transform_feedback/ext_transform_feedback-api.c | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c b/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c index dcd44526..567cc2ac 100644 --- a/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c +++ b/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c @@ -53,7 +53,13 @@ test_new_tokens_feedback_buffer_ext() GLuint buffer; void *data; GLenum valid_target = GL_TRANSFORM_FEEDBACK_BUFFER_EXT; + GLenum valid_accesses[] = { + GL_READ, + GL_WRITE, + GL_READ_WRITE + }; GLenum error; + int i; glGenBuffers(1, &buffer); /* BindBuffer test */ @@ -63,21 +69,35 @@ test_new_tokens_feedback_buffer_ext() pass = false; } - /* MapBuffer */ - data = glMapBuffer(buffer, GL_READ_WRITE); - /* TODO: check if data is set correctly - perhaps for operational test */ - error = glGetError(); - if (error == GL_INVALID_ENUM) { - pass = false; + /* Test MapBuffer/UnmapBuffer with all kind of accesses */ + for (i=0; i < sizeof(valid_accesses) / sizeof(valid_accesses[0]); i++) { + data = glMapBuffer(buffer, valid_accesses[i]); + /* TODO: check if data is set correctly - perhaps for operational test */ + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } + + /* UnmapBuffer */ + glUnmapBuffer(buffer); + error = glGetError(); + if (error == GL_INVALID_ENUM) { + pass = false; + } } - /* UnmapBuffer */ - glUnmapBuffer(buffer); + /* Test GetBufferSubData */ + glGetBufferSubData(valid_target, 0, 0, data); error = glGetError(); if (error == GL_INVALID_ENUM) { pass = false; } + /* TODO: test GetBufferPointerv */ + /* TODO: test GetBindBufferRangeEXT */ + /* TODO: test GetBindBufferOffsetEXT */ + /* TODO: test GetBindBufferBaseEXT */ + glDeleteBuffers(1, &buffer); return pass; |