summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni@dodonov.net>2011-08-24 19:41:50 -0300
committerEugeni Dodonov <eugeni@dodonov.net>2011-08-24 19:41:50 -0300
commit0f0a7d932f93f8d4f8dcb7ddfb7e4bbe01b299dc (patch)
treef1ffd77ba7a2e80bbe54d9e9d00753586fdb1acd
parentd1d8fa69d9307c3d70b5a918a16e1977137f5b07 (diff)
Add API tests for glEnable/glDisable/glIsEnabled, and glGet*v.ext_transform_feedback
-rw-r--r--tests/spec/ext_transform_feedback/ext_transform_feedback-api.c77
1 files changed, 69 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 e40e25bf..72f8ffa7 100644
--- a/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c
+++ b/tests/spec/ext_transform_feedback/ext_transform_feedback-api.c
@@ -96,6 +96,8 @@ test_new_tokens_feedback_buffer_ext()
*/
/* TODO: test GetBufferPointerv */
+
+ /* New function calls provided by the extension */
/* TODO: test GetBindBufferRangeEXT */
/* TODO: test GetBindBufferOffsetEXT */
/* TODO: test GetBindBufferBaseEXT */
@@ -118,6 +120,10 @@ static bool
test_new_tokens_feedback_buffer_start_size()
{
bool pass = true;
+
+ /* TODO: those functions will become available when the extension will be
+ * implemented in mesa */
+
return pass;
}
@@ -157,18 +163,36 @@ test_new_tokens_feedback_attribs()
/**
* New <cap> parameter for Enable, Disable, and IsEnabled:
- *
- * And new <pname> parameter for GetBooleanv, GetIntegerv, GetFloatv,
- * and GetDoublev:
* RASTERIZER_DISCARD_EXT
*
- *
*/
static bool
-test_new_tokens_feedback_rasterized()
+test_new_tokens_enable_disable()
{
bool pass = true;
+ GLenum error;
+ GLenum capability = GL_RASTERIZER_DISCARD_EXT;
+
+ /* glEnable */
+ glEnable(capability);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ /* glIsEnabled */
+ glIsEnabled(capability);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ /* glDisable */
+ glDisable(capability);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+
return pass;
}
@@ -179,14 +203,51 @@ test_new_tokens_feedback_rasterized()
* MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT
* MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT
* MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT
+ * RASTERIZER_DISCARD_EXT
*
*
*/
static bool
-test_new_tokens_feedback_interleaved_separate()
+test_new_tokens_get_v()
{
bool pass = true;
+ GLenum valid_targets[] = {
+ GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT,
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT,
+ GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT,
+ GL_RASTERIZER_DISCARD_EXT,
+ };
+ GLenum error;
+ GLboolean pvalue_b;
+ GLdouble pvalue_d;
+ GLint pvalue_i;
+ GLfloat pvalue_f;
+ int i;
+
+ for (i=0; i < sizeof(valid_targets) / sizeof(valid_targets[0]); i++) {
+ /* Getting objects */
+ glGetBooleanv(valid_targets[i], &pvalue_b);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ glGetDoublev(valid_targets[i], &pvalue_d);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ glGetIntegerv(valid_targets[i], &pvalue_i);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ glGetFloatv(valid_targets[i], &pvalue_f);
+ error = glGetError();
+ if (error == GL_INVALID_ENUM) {
+ pass = false;
+ }
+ }
return pass;
}
@@ -304,10 +365,10 @@ test()
pass = test_new_tokens_feedback_attribs();
if (pass != true)
result = false;
- pass = test_new_tokens_feedback_rasterized();
+ pass = test_new_tokens_enable_disable();
if (pass != true)
result = false;
- pass = test_new_tokens_feedback_interleaved_separate();
+ pass = test_new_tokens_get_v();
if (pass != true)
result = false;
pass = test_new_tokens_feedback_getprogramiv();