Signed-off-by: Anuj Phogat <[email protected]>
---
 tests/all.py                          |   8 +--
 tests/texturing/getteximage-targets.c | 121 ++++++++++++++++++++++------------
 2 files changed, 82 insertions(+), 47 deletions(-)

diff --git a/tests/all.py b/tests/all.py
index 4d47c4c..c1fac8f 100755
--- a/tests/all.py
+++ b/tests/all.py
@@ -3035,10 +3035,10 @@ with profile.group_manager(
     g(['s3tc-errors'])
     g(['s3tc-teximage'], run_concurrent=False)
     g(['s3tc-texsubimage'], run_concurrent=False)
-    g(['getteximage-targets', 'S3TC', '2D'])
-    g(['getteximage-targets', 'S3TC', '2D_ARRAY'])
-    g(['getteximage-targets', 'S3TC', 'CUBE'])
-    g(['getteximage-targets', 'S3TC', 'CUBE_ARRAY'])
+    g(['getteximage-targets', '2D', 'S3TC'])
+    g(['getteximage-targets', '2D_ARRAY', 'S3TC'])
+    g(['getteximage-targets', 'CUBE', 'S3TC'])
+    g(['getteximage-targets', 'CUBE_ARRAY', 'S3TC'])
     g(['compressedteximage', 'GL_COMPRESSED_SRGB_S3TC_DXT1_EXT'])
     g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT'])
     g(['compressedteximage', 'GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT'])
diff --git a/tests/texturing/getteximage-targets.c 
b/tests/texturing/getteximage-targets.c
index 03bb4f8..841ba45 100644
--- a/tests/texturing/getteximage-targets.c
+++ b/tests/texturing/getteximage-targets.c
@@ -221,58 +221,93 @@ getTexImage(bool doPBO, GLenum target, GLubyte 
data[][IMAGE_SIZE],
        return pass;
 }
 
+NORETURN void
+print_usage_and_exit(char *prog_name)
+{
+       printf("Usage: %s <target> <compression>\n"
+              "  where <target> is one of:\n"
+              "    1D\n"
+              "    2D\n"
+              "    3D\n"
+              "    RECT\n"
+              "    CUBE\n"
+              "    1D_ARRAY\n"
+              "    2D_ARRAY\n"
+              "    CUBE_ARRAY\n"
+              "  where <compression> is one of:\n"
+              "    S3TC: Valid only with 2D* and CUBE* targets\n",
+              prog_name);
+       piglit_report_result(PIGLIT_FAIL);
+}
+
 void
 piglit_init(int argc, char **argv)
 {
-       int i;
-       GLenum target = GL_TEXTURE_2D;
+       int i = 1;
+       GLenum target;
        bool pass = true;
        GLenum internalformat = GL_RGBA8;
        GLubyte data[18][IMAGE_SIZE];
        int tolerance = 0;
 
-       for (i = 1; i < argc; i++) {
-               if (strcmp(argv[i], "1D") == 0) {
-                       target = GL_TEXTURE_1D;
-               }
-               if (strcmp(argv[i], "3D") == 0) {
-                       target = GL_TEXTURE_3D;
-                       piglit_require_gl_version(12);
-               }
-               if (strcmp(argv[i], "RECT") == 0) {
-                       target = GL_TEXTURE_RECTANGLE;
-                       piglit_require_extension("GL_ARB_texture_rectangle");
-               }
-               if (strcmp(argv[i], "CUBE") == 0) {
-                       target = GL_TEXTURE_CUBE_MAP;
-                       piglit_require_extension("GL_ARB_texture_cube_map");
-               }
-               if (strcmp(argv[i], "1D_ARRAY") == 0) {
-                       target = GL_TEXTURE_1D_ARRAY;
-                       piglit_require_extension("GL_EXT_texture_array");
-               }
-               if (strcmp(argv[i], "2D_ARRAY") == 0) {
-                       target = GL_TEXTURE_2D_ARRAY;
-                       piglit_require_extension("GL_EXT_texture_array");
-               }
-               if (strcmp(argv[i], "CUBE_ARRAY") == 0) {
-                       target = GL_TEXTURE_CUBE_MAP_ARRAY;
-                       
piglit_require_extension("GL_ARB_texture_cube_map_array");
-               }
-               if (strcmp(argv[i], "S3TC") == 0) {
-                       internalformat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
-                       tolerance = 8;
-                       if 
(!piglit_is_extension_supported("GL_EXT_texture_compression_s3tc")
-                           && 
!piglit_is_extension_supported("GL_ANGLE_texture_compression_dxt5")) {
-                               fprintf(stderr,
-                                       "S3TC testing requires either "
-                                       "GL_EXT_texture_compression_s3tc or "
-                                       "GL_ANGLE_texture_compression_dxt5 "
-                                       "extension be supported.\n");
-                               piglit_report_result(PIGLIT_SKIP);
-                       }
-                       puts("Testing S3TC.");
+       if (argc < 2 || argc > 3)
+               print_usage_and_exit(argv[0]);
+
+       if (strcmp(argv[i], "1D") == 0) {
+               target = GL_TEXTURE_1D;
+       }
+       else if (strcmp(argv[i], "2D") == 0) {
+               target = GL_TEXTURE_2D;
+       }
+       else if (strcmp(argv[i], "3D") == 0) {
+               target = GL_TEXTURE_3D;
+               piglit_require_gl_version(12);
+       }
+       else if (strcmp(argv[i], "RECT") == 0) {
+               target = GL_TEXTURE_RECTANGLE;
+               piglit_require_extension("GL_ARB_texture_rectangle");
+       }
+       else if (strcmp(argv[i], "CUBE") == 0) {
+               target = GL_TEXTURE_CUBE_MAP;
+               piglit_require_extension("GL_ARB_texture_cube_map");
+       }
+       else if (strcmp(argv[i], "1D_ARRAY") == 0) {
+               target = GL_TEXTURE_1D_ARRAY;
+               piglit_require_extension("GL_EXT_texture_array");
+       }
+       else if (strcmp(argv[i], "2D_ARRAY") == 0) {
+               target = GL_TEXTURE_2D_ARRAY;
+               piglit_require_extension("GL_EXT_texture_array");
+       }
+       else if (strcmp(argv[i], "CUBE_ARRAY") == 0) {
+               target = GL_TEXTURE_CUBE_MAP_ARRAY;
+               piglit_require_extension("GL_ARB_texture_cube_map_array");
+       }
+       else {
+               print_usage_and_exit(argv[0]);
+       }
+
+       i++;
+
+       if (argc == 3 && strcmp(argv[i], "S3TC") == 0 &&
+           (target == GL_TEXTURE_2D ||
+            target == GL_TEXTURE_2D_ARRAY ||
+            target == GL_TEXTURE_CUBE_MAP ||
+            target == GL_TEXTURE_CUBE_MAP_ARRAY)) {
+               internalformat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
+               tolerance = 8;
+               if 
(!piglit_is_extension_supported("GL_EXT_texture_compression_s3tc")
+                   && 
!piglit_is_extension_supported("GL_ANGLE_texture_compression_dxt5")) {
+                       fprintf(stderr,
+                               "S3TC testing requires either "
+                               "GL_EXT_texture_compression_s3tc or "
+                               "GL_ANGLE_texture_compression_dxt5 "
+                               "extension be supported.\n");
+                       piglit_report_result(PIGLIT_SKIP);
                }
+               puts("Testing S3TC.");
+       } else if (argc == 3) {
+               print_usage_and_exit(argv[0]);
        }
 
        init_layer_data(data[0], 18);
-- 
1.9.3

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to