Mesa (master): util: Reorder format tests -- group by format.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Fri Apr 9 15:34:41 UTC 2010


Module: Mesa
Branch: master
Commit: b1cfc195bb802d6ee2b7e230e7d7bce9ffe7eefd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1cfc195bb802d6ee2b7e230e7d7bce9ffe7eefd

Author: José Fonseca <jfonseca at vmware.com>
Date:   Fri Apr  9 14:14:54 2010 +0100

util: Reorder format tests -- group by format.

---

 progs/gallium/unit/u_format_test.c           |   60 ++++++++++++++------------
 src/gallium/auxiliary/util/u_format_table.py |    1 -
 2 files changed, 32 insertions(+), 29 deletions(-)

diff --git a/progs/gallium/unit/u_format_test.c b/progs/gallium/unit/u_format_test.c
index d404fb5..442023b 100644
--- a/progs/gallium/unit/u_format_test.c
+++ b/progs/gallium/unit/u_format_test.c
@@ -349,31 +349,20 @@ typedef boolean
 
 
 static boolean
-test_one(test_func_t func, const char *suffix)
+test_one_func(const struct util_format_description *format_desc,
+              test_func_t func,
+              const char *suffix)
 {
-   enum pipe_format last_format = PIPE_FORMAT_NONE;
    unsigned i;
    bool success = TRUE;
 
+   printf("Testing util_format_%s_%s ...\n",
+          format_desc->short_name, suffix);
+
    for (i = 0; i < util_format_nr_test_cases; ++i) {
       const struct util_format_test_case *test = &util_format_test_cases[i];
-      const struct util_format_description *format_desc;
-      bool skip = FALSE;
-
-      format_desc = util_format_description(test->format);
-
-      if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC &&
-          !util_format_s3tc_enabled) {
-         skip = TRUE;
-      }
-
-      if (test->format != last_format) {
-         printf("%s util_format_%s_%s ...\n",
-                skip ? "Skipping" : "Testing", format_desc->short_name, suffix);
-         last_format = test->format;
-      }
 
-      if (!skip) {
+      if (test->format == format_desc->format) {
          if (!func(format_desc, &util_format_test_cases[i])) {
            success = FALSE;
          }
@@ -387,22 +376,37 @@ test_one(test_func_t func, const char *suffix)
 static boolean
 test_all(void)
 {
+   enum pipe_format format;
    bool success = TRUE;
 
-   if (!test_one(&test_format_fetch_rgba_float, "fetch_rgba_float"))
-     success = FALSE;
+   for (format = 1; format < PIPE_FORMAT_COUNT; ++format) {
+      const struct util_format_description *format_desc;
+
+      format_desc = util_format_description(format);
+      if (!format_desc) {
+         continue;
+      }
 
-   if (!test_one(&test_format_pack_rgba_float, "pack_rgba_float"))
-     success = FALSE;
+      if (format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC &&
+          !util_format_s3tc_enabled) {
+         continue;
+      }
 
-   if (!test_one(&test_format_unpack_rgba_float, "unpack_rgba_float"))
-     success = FALSE;
+#     define TEST_ONE_FUNC(name) \
+      if (format_desc->name) { \
+         if (!test_one_func(format_desc, &test_format_##name, #name)) { \
+           success = FALSE; \
+         } \
+      }
 
-   if (!test_one(&test_format_pack_rgba_8unorm, "pack_rgba_8unorm"))
-     success = FALSE;
+      TEST_ONE_FUNC(fetch_rgba_float);
+      TEST_ONE_FUNC(pack_rgba_float);
+      TEST_ONE_FUNC(unpack_rgba_float);
+      TEST_ONE_FUNC(pack_rgba_8unorm);
+      TEST_ONE_FUNC(unpack_rgba_8unorm);
 
-   if (!test_one(&test_format_unpack_rgba_8unorm, "unpack_rgba_8unorm"))
-     success = FALSE;
+#     undef TEST_ONE_FUNC
+   }
 
    return success;
 }
diff --git a/src/gallium/auxiliary/util/u_format_table.py b/src/gallium/auxiliary/util/u_format_table.py
index 5440a8b..ae9a598 100755
--- a/src/gallium/auxiliary/util/u_format_table.py
+++ b/src/gallium/auxiliary/util/u_format_table.py
@@ -172,7 +172,6 @@ def write_format_table(formats):
         print "   case %s:" % format.name
         print "      return &util_format_%s_description;" % (format.short_name(),)
     print "   default:"
-    print "      assert(0);"
     print "      return NULL;"
     print "   }"
     print "}"




More information about the mesa-commit mailing list