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);
}
}