SDL: Fix testautomation_pixels:

From 76e1c7c509c37397868ef25b2ab5a2fc670cad93 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Sat, 7 Jan 2023 16:48:51 +0100
Subject: [PATCH] Fix testautomation_pixels: we can create all pixel format,
 including SDL_PIXELFORMAT_UNKNOWN (as before).

---
 test/testautomation_pixels.c | 83 +++++++++++-------------------------
 1 file changed, 26 insertions(+), 57 deletions(-)

diff --git a/test/testautomation_pixels.c b/test/testautomation_pixels.c
index f8b2ad701473..2a32228a7724 100644
--- a/test/testautomation_pixels.c
+++ b/test/testautomation_pixels.c
@@ -7,8 +7,8 @@
 /* Test case functions */
 
 /* Definition of all RGB formats used to test pixel conversions */
-const int g_numRGBPixelFormats = 31;
-Uint32 g_RGBPixelFormats[] = {
+const int g_numAllFormats = 38;
+Uint32 g_AllFormats[] = {
     SDL_PIXELFORMAT_INDEX1LSB,
     SDL_PIXELFORMAT_INDEX1MSB,
     SDL_PIXELFORMAT_INDEX4LSB,
@@ -39,9 +39,17 @@ Uint32 g_RGBPixelFormats[] = {
     SDL_PIXELFORMAT_RGBA8888,
     SDL_PIXELFORMAT_ABGR8888,
     SDL_PIXELFORMAT_BGRA8888,
-    SDL_PIXELFORMAT_ARGB2101010
+    SDL_PIXELFORMAT_ARGB2101010,
+    SDL_PIXELFORMAT_YV12,
+    SDL_PIXELFORMAT_IYUV,
+    SDL_PIXELFORMAT_YUY2,
+    SDL_PIXELFORMAT_UYVY,
+    SDL_PIXELFORMAT_YVYU,
+    SDL_PIXELFORMAT_NV12,
+    SDL_PIXELFORMAT_NV21
 };
-const char *g_RGBPixelFormatsVerbose[] = {
+
+const char *g_AllFormatsVerbose[] = {
     "SDL_PIXELFORMAT_INDEX1LSB",
     "SDL_PIXELFORMAT_INDEX1MSB",
     "SDL_PIXELFORMAT_INDEX4LSB",
@@ -72,21 +80,7 @@ const char *g_RGBPixelFormatsVerbose[] = {
     "SDL_PIXELFORMAT_RGBA8888",
     "SDL_PIXELFORMAT_ABGR8888",
     "SDL_PIXELFORMAT_BGRA8888",
-    "SDL_PIXELFORMAT_ARGB2101010"
-};
-
-/* Definition of all Non-RGB formats used to test pixel conversions */
-const int g_numNonRGBPixelFormats = 7;
-static Uint32 g_nonRGBPixelFormats[] = {
-    SDL_PIXELFORMAT_YV12,
-    SDL_PIXELFORMAT_IYUV,
-    SDL_PIXELFORMAT_YUY2,
-    SDL_PIXELFORMAT_UYVY,
-    SDL_PIXELFORMAT_YVYU,
-    SDL_PIXELFORMAT_NV12,
-    SDL_PIXELFORMAT_NV21
-};
-const char *g_nonRGBPixelFormatsVerbose[] = {
+    "SDL_PIXELFORMAT_ARGB2101010",
     "SDL_PIXELFORMAT_YV12",
     "SDL_PIXELFORMAT_IYUV",
     "SDL_PIXELFORMAT_YUY2",
@@ -94,6 +88,7 @@ const char *g_nonRGBPixelFormatsVerbose[] = {
     "SDL_PIXELFORMAT_YVYU",
     "SDL_PIXELFORMAT_NV12",
     "SDL_PIXELFORMAT_NV21"
+
 };
 
 /* Definition of some invalid formats for negative tests */
@@ -119,6 +114,7 @@ int pixels_allocFreeFormat(void *arg)
 {
     const char *unknownFormat = "SDL_PIXELFORMAT_UNKNOWN";
     const char *expectedError = "Parameter 'format' is invalid";
+    const char *expectedError2 = "Parameter 'pixel_format' is invalid";
     const char *error;
     int i;
     Uint32 format;
@@ -146,9 +142,9 @@ int pixels_allocFreeFormat(void *arg)
     }
 
     /* RGB formats */
-    for (i = 0; i < g_numRGBPixelFormats; i++) {
-        format = g_RGBPixelFormats[i];
-        SDLTest_Log("RGB Format: %s (%" SDL_PRIu32 ")", g_RGBPixelFormatsVerbose[i], format);
+    for (i = 0; i < g_numAllFormats; i++) {
+        format = g_AllFormats[i];
+        SDLTest_Log("RGB Format: %s (%" SDL_PRIu32 ")", g_AllFormatsVerbose[i], format);
 
         /* Allocate format */
         result = SDL_CreatePixelFormat(format);
@@ -158,7 +154,7 @@ int pixels_allocFreeFormat(void *arg)
             SDLTest_AssertCheck(result->format == format, "Verify value of result.format; expected: %" SDL_PRIu32 ", got %" SDL_PRIu32, format, result->format);
             SDLTest_AssertCheck(result->BitsPerPixel > 0, "Verify value of result.BitsPerPixel; expected: >0, got %u", result->BitsPerPixel);
             SDLTest_AssertCheck(result->BytesPerPixel > 0, "Verify value of result.BytesPerPixel; expected: >0, got %u", result->BytesPerPixel);
-            if (result->palette != NULL) {
+            if (result->palette != NULL && !SDL_ISPIXELFORMAT_FOURCC(result->format)) {
                 masks = result->Rmask | result->Gmask | result->Bmask | result->Amask;
                 SDLTest_AssertCheck(masks > 0, "Verify value of result.[RGBA]mask combined; expected: >0, got %" SDL_PRIu32, masks);
             }
@@ -169,17 +165,6 @@ int pixels_allocFreeFormat(void *arg)
         }
     }
 
-    /* Non-RGB formats */
-    for (i = 0; i < g_numNonRGBPixelFormats; i++) {
-        format = g_nonRGBPixelFormats[i];
-        SDLTest_Log("non-RGB Format: %s (%" SDL_PRIu32 ")", g_nonRGBPixelFormatsVerbose[i], format);
-
-        /* Try to allocate format */
-        result = SDL_CreatePixelFormat(format);
-        SDLTest_AssertPass("Call to SDL_CreatePixelFormat()");
-        SDLTest_AssertCheck(result == NULL, "Verify result is NULL");
-    }
-
     /* Negative cases */
 
     /* Invalid Formats */
@@ -194,8 +179,8 @@ int pixels_allocFreeFormat(void *arg)
         SDLTest_AssertPass("Call to SDL_GetError()");
         SDLTest_AssertCheck(error != NULL, "Validate that error message was not NULL");
         if (error != NULL) {
-            SDLTest_AssertCheck(SDL_strcmp(error, expectedError) == 0,
-                                "Validate error message, expected: '%s', got: '%s'", expectedError, error);
+            SDLTest_AssertCheck(SDL_strcmp(error, expectedError2) == 0,
+                                "Validate error message, expected: '%s', got: '%s'", expectedError2, error);
         }
     }
 
@@ -243,25 +228,9 @@ int pixels_getPixelFormatName(void *arg)
     }
 
     /* RGB formats */
-    for (i = 0; i < g_numRGBPixelFormats; i++) {
-        format = g_RGBPixelFormats[i];
-        SDLTest_Log("RGB Format: %s (%" SDL_PRIu32 ")", g_RGBPixelFormatsVerbose[i], format);
-
-        /* Get name of format */
-        result = SDL_GetPixelFormatName(format);
-        SDLTest_AssertPass("Call to SDL_GetPixelFormatName()");
-        SDLTest_AssertCheck(result != NULL, "Verify result is not NULL");
-        if (result != NULL) {
-            SDLTest_AssertCheck(result[0] != '\0', "Verify result is non-empty");
-            SDLTest_AssertCheck(SDL_strcmp(result, g_RGBPixelFormatsVerbose[i]) == 0,
-                                "Verify result text; expected: %s, got %s", g_RGBPixelFormatsVerbose[i], result);
-        }
-    }
-
-    /* Non-RGB formats */
-    for (i = 0; i < g_numNonRGBPixelFormats; i++) {
-        format = g_nonRGBPixelFormats[i];
-        SDLTest_Log("non-RGB Format: %s (%" SDL_PRIu32 ")", g_nonRGBPixelFormatsVerbose[i], format);
+    for (i = 0; i < g_numAllFormats; i++) {
+        format = g_AllFormats[i];
+        SDLTest_Log("RGB Format: %s (%" SDL_PRIu32 ")", g_AllFormatsVerbose[i], format);
 
         /* Get name of format */
         result = SDL_GetPixelFormatName(format);
@@ -269,8 +238,8 @@ int pixels_getPixelFormatName(void *arg)
         SDLTest_AssertCheck(result != NULL, "Verify result is not NULL");
         if (result != NULL) {
             SDLTest_AssertCheck(result[0] != '\0', "Verify result is non-empty");
-            SDLTest_AssertCheck(SDL_strcmp(result, g_nonRGBPixelFormatsVerbose[i]) == 0,
-                                "Verify result text; expected: %s, got %s", g_nonRGBPixelFormatsVerbose[i], result);
+            SDLTest_AssertCheck(SDL_strcmp(result, g_AllFormatsVerbose[i]) == 0,
+                                "Verify result text; expected: %s, got %s", g_AllFormatsVerbose[i], result);
         }
     }