Browse Source

testautomation: fixed RLE operation test on big endian systems

Fixes https://github.com/libsdl-org/SDL/issues/14348
Sam Lantinga 1 month ago
parent
commit
b3612f6462
1 changed files with 11 additions and 0 deletions
  1. 11 0
      test/testautomation_surface.c

+ 11 - 0
test/testautomation_surface.c

@@ -873,6 +873,17 @@ static int SDLCALL surface_testSurfaceRLEPixels(void *arg)
         return TEST_ABORTED;
     }
 
+    /* RLE encoding only works for 32-bit surfaces with alpha in the high bits */
+    if (face->format != SDL_PIXELFORMAT_ARGB8888) {
+        tmp = SDL_ConvertSurface(face, SDL_PIXELFORMAT_ARGB8888);
+        SDLTest_AssertCheck(tmp != NULL, "Verify tmp surface is not NULL");
+        if (tmp == NULL) {
+            return TEST_ABORTED;
+        }
+        SDL_DestroySurface(face);
+        face = tmp;
+    }
+
     /* Create a temporary surface to trigger RLE encoding during blit */
     tmp = SDL_DuplicateSurface(face);
     SDLTest_AssertCheck(tmp != NULL, "Verify result from SDL_DuplicateSurface() with RLE pixels is not NULL");