[Cogl] [PATCH 1/3] tests: Don't report success when the test is skipped

Neil Roberts neil at linux.intel.com
Fri Nov 9 08:56:12 PST 2012


The tests that were using GLSL or 3D textures were directly printing
“Skipped” and then reporting success. Instead of doing this they now
just try to continue without checking for the feature but the
appropriate test requirement flag is now set in test-conform-main so
the table of results will correctly display that is a failure.
---
 tests/conform/test-conform-main.c       | 10 +++----
 tests/conform/test-custom-attributes.c  | 52 +++++++++++++++------------------
 tests/conform/test-just-vertex-shader.c | 15 +++-------
 tests/conform/test-pipeline-uniforms.c  | 50 ++++++++++++++-----------------
 tests/conform/test-snippets.c           | 26 +++++++----------
 tests/conform/test-texture-3d.c         | 34 +++++++++------------
 tests/conform/test-utils.c              |  6 ++++
 tests/conform/test-utils.h              |  3 +-
 8 files changed, 85 insertions(+), 111 deletions(-)

diff --git a/tests/conform/test-conform-main.c b/tests/conform/test-conform-main.c
index 9e2df06..701581c 100644
--- a/tests/conform/test-conform-main.c
+++ b/tests/conform/test-conform-main.c
@@ -69,7 +69,7 @@ main (int argc, char **argv)
   ADD_TEST (test_sub_texture, 0);
   ADD_TEST (test_pixel_buffer, 0);
   UNPORTED_TEST (test_texture_rectangle);
-  ADD_TEST (test_texture_3d, 0);
+  ADD_TEST (test_texture_3d, TEST_REQUIREMENT_TEXTURE_3D);
   ADD_TEST (test_wrap_modes, 0);
   UNPORTED_TEST (test_texture_pixmap_x11);
   UNPORTED_TEST (test_texture_get_set_data);
@@ -83,10 +83,10 @@ main (int argc, char **argv)
 
   ADD_TEST (test_primitive, 0);
 
-  ADD_TEST (test_just_vertex_shader, 0);
-  ADD_TEST (test_pipeline_uniforms, 0);
-  ADD_TEST (test_snippets, 0);
-  ADD_TEST (test_custom_attributes, 0);
+  ADD_TEST (test_just_vertex_shader, TEST_REQUIREMENT_GLSL);
+  ADD_TEST (test_pipeline_uniforms, TEST_REQUIREMENT_GLSL);
+  ADD_TEST (test_snippets, TEST_REQUIREMENT_GLSL);
+  ADD_TEST (test_custom_attributes, TEST_REQUIREMENT_GLSL);
 
   ADD_TEST (test_bitmask, 0);
 
diff --git a/tests/conform/test-custom-attributes.c b/tests/conform/test-custom-attributes.c
index e726488..fce541e 100644
--- a/tests/conform/test-custom-attributes.c
+++ b/tests/conform/test-custom-attributes.c
@@ -270,33 +270,27 @@ paint (TestState *state)
 void
 test_custom_attributes (void)
 {
-  /* If shaders aren't supported then we can't run the test */
-  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
-    {
-      CoglSnippet *snippet;
-      TestState state;
-
-      cogl_framebuffer_orthographic (test_fb,
-                                     0, 0,
-                                     cogl_framebuffer_get_width (test_fb),
-                                     cogl_framebuffer_get_height (test_fb),
-                                     -1,
-                                     100);
-
-      state.pipeline = cogl_pipeline_new (test_ctx);
-      snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_VERTEX,
-                                  "attribute vec4 color;",
-                                  "cogl_color_out = color;");
-      cogl_pipeline_add_snippet (state.pipeline, snippet);
-
-      paint (&state);
-
-      cogl_object_unref (state.pipeline);
-      cogl_object_unref (snippet);
-
-      if (cogl_test_verbose ())
-        g_print ("OK\n");
-    }
-  else if (cogl_test_verbose ())
-    g_print ("Skipping\n");
+  CoglSnippet *snippet;
+  TestState state;
+
+  cogl_framebuffer_orthographic (test_fb,
+                                 0, 0,
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
+                                 -1,
+                                 100);
+
+  state.pipeline = cogl_pipeline_new (test_ctx);
+  snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_VERTEX,
+                              "attribute vec4 color;",
+                              "cogl_color_out = color;");
+  cogl_pipeline_add_snippet (state.pipeline, snippet);
+
+  paint (&state);
+
+  cogl_object_unref (state.pipeline);
+  cogl_object_unref (snippet);
+
+  if (cogl_test_verbose ())
+    g_print ("OK\n");
 }
diff --git a/tests/conform/test-just-vertex-shader.c b/tests/conform/test-just-vertex-shader.c
index a87b4cf..26f5072 100644
--- a/tests/conform/test-just-vertex-shader.c
+++ b/tests/conform/test-just-vertex-shader.c
@@ -95,16 +95,9 @@ test_just_vertex_shader (void)
                                  -1,
                                  100);
 
-  /* If GLSL isn't supported then we can't run the test */
-  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
-    {
-      paint (&state);
-      validate_result (test_fb);
+  paint (&state);
+  validate_result (test_fb);
 
-      if (cogl_test_verbose ())
-        g_print ("OK\n");
-    }
-  else if (cogl_test_verbose ())
-    g_print ("Skipping\n");
+  if (cogl_test_verbose ())
+    g_print ("OK\n");
 }
-
diff --git a/tests/conform/test-pipeline-uniforms.c b/tests/conform/test-pipeline-uniforms.c
index d174550..3b41af0 100644
--- a/tests/conform/test-pipeline-uniforms.c
+++ b/tests/conform/test-pipeline-uniforms.c
@@ -374,39 +374,33 @@ validate_long_pipeline_result (void)
 void
 test_pipeline_uniforms (void)
 {
-  /* If shaders aren't supported then we can't run the test */
-  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
-    {
-      TestState state;
+  TestState state;
 
-      init_state (&state);
+  init_state (&state);
 
-      cogl_framebuffer_orthographic (test_fb,
-                                     0, 0,
-                                     cogl_framebuffer_get_width (test_fb),
-                                     cogl_framebuffer_get_height (test_fb),
-                                     -1,
-                                     100);
+  cogl_framebuffer_orthographic (test_fb,
+                                 0, 0,
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
+                                 -1,
+                                 100);
 
-      paint (&state);
-      validate_result ();
+  paint (&state);
+  validate_result ();
 
-      /* Try the test again after querying the location of a large
-         number of uniforms. This should verify that the bitmasks
-         still work even if they have to allocate a separate array to
-         store the bits */
+  /* Try the test again after querying the location of a large
+     number of uniforms. This should verify that the bitmasks
+     still work even if they have to allocate a separate array to
+     store the bits */
 
-      init_long_pipeline_state (&state);
-      paint (&state);
-      paint_long_pipeline (&state);
-      validate_result ();
-      validate_long_pipeline_result ();
+  init_long_pipeline_state (&state);
+  paint (&state);
+  paint_long_pipeline (&state);
+  validate_result ();
+  validate_long_pipeline_result ();
 
-      destroy_state (&state);
+  destroy_state (&state);
 
-      if (cogl_test_verbose ())
-        g_print ("OK\n");
-    }
-  else if (cogl_test_verbose ())
-    g_print ("Skipping\n");
+  if (cogl_test_verbose ())
+    g_print ("OK\n");
 }
diff --git a/tests/conform/test-snippets.c b/tests/conform/test-snippets.c
index c14ed58..51bd090 100644
--- a/tests/conform/test-snippets.c
+++ b/tests/conform/test-snippets.c
@@ -691,23 +691,17 @@ run_tests (TestState *state)
 void
 test_snippets (void)
 {
-  /* If shaders aren't supported then we can't run the test */
-  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
-    {
-      TestState state;
+  TestState state;
 
-      cogl_framebuffer_orthographic (test_fb,
-                                     0, 0,
-                                     cogl_framebuffer_get_width (test_fb),
-                                     cogl_framebuffer_get_height (test_fb),
-                                     -1,
-                                     100);
+  cogl_framebuffer_orthographic (test_fb,
+                                 0, 0,
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
+                                 -1,
+                                 100);
 
-      run_tests (&state);
+  run_tests (&state);
 
-      if (cogl_test_verbose ())
-        g_print ("OK\n");
-    }
-  else if (cogl_test_verbose ())
-    g_print ("Skipping\n");
+  if (cogl_test_verbose ())
+    g_print ("OK\n");
 }
diff --git a/tests/conform/test-texture-3d.c b/tests/conform/test-texture-3d.c
index 3ca1aa5..3891c31 100644
--- a/tests/conform/test-texture-3d.c
+++ b/tests/conform/test-texture-3d.c
@@ -256,30 +256,22 @@ test_multi_texture (TestState *state)
 void
 test_texture_3d (void)
 {
-  /* Check whether GL supports the rectangle extension. If not we'll
-     just assume the test passes */
-  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_TEXTURE_3D))
-    {
-      TestState state;
+  TestState state;
 
-      state.fb_width = cogl_framebuffer_get_width (test_fb);
-      state.fb_height = cogl_framebuffer_get_height (test_fb);
+  state.fb_width = cogl_framebuffer_get_width (test_fb);
+  state.fb_height = cogl_framebuffer_get_height (test_fb);
 
-      cogl_framebuffer_orthographic (test_fb,
-                                     0, 0, /* x_1, y_1 */
-                                     state.fb_width, /* x_2 */
-                                     state.fb_height /* y_2 */,
-                                     -1, 100 /* near/far */);
+  cogl_framebuffer_orthographic (test_fb,
+                                 0, 0, /* x_1, y_1 */
+                                 state.fb_width, /* x_2 */
+                                 state.fb_height /* y_2 */,
+                                 -1, 100 /* near/far */);
 
-      draw_frame (&state);
-      validate_result ();
+  draw_frame (&state);
+  validate_result ();
 
-      test_multi_texture (&state);
+  test_multi_texture (&state);
 
-      if (cogl_test_verbose ())
-        g_print ("OK\n");
-    }
-  else if (cogl_test_verbose ())
-    g_print ("Skipping\n");
+  if (cogl_test_verbose ())
+    g_print ("OK\n");
 }
-
diff --git a/tests/conform/test-utils.c b/tests/conform/test-utils.c
index c11b678..4ee0856 100644
--- a/tests/conform/test-utils.c
+++ b/tests/conform/test-utils.c
@@ -88,6 +88,12 @@ test_utils_init (TestFlags flags)
       missing_requirement = TRUE;
     }
 
+  if (flags & TEST_REQUIREMENT_GLSL &&
+      !cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
+    {
+      missing_requirement = TRUE;
+    }
+
   if (flags & TEST_KNOWN_FAILURE)
     {
       missing_requirement = TRUE;
diff --git a/tests/conform/test-utils.h b/tests/conform/test-utils.h
index 6ab278f..acd4fad 100644
--- a/tests/conform/test-utils.h
+++ b/tests/conform/test-utils.h
@@ -15,7 +15,8 @@ typedef enum _TestFlags
   TEST_REQUIREMENT_TEXTURE_3D    = 1<<3,
   TEST_REQUIREMENT_POINT_SPRITE  = 1<<4,
   TEST_REQUIREMENT_GLES2_CONTEXT = 1<<5,
-  TEST_REQUIREMENT_MAP_WRITE     = 1<<6
+  TEST_REQUIREMENT_MAP_WRITE     = 1<<6,
+  TEST_REQUIREMENT_GLSL          = 1<<7
 } TestFlags;
 
 extern CoglContext *test_ctx;
-- 
1.7.11.3.g3c3efa5



More information about the Cogl mailing list