[Piglit] [PATCH 1/2] Add usage information to getteximage-targets

Anuj Phogat anuj.phogat at gmail.com
Fri Apr 10 16:11:46 PDT 2015


Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
 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



More information about the Piglit mailing list