From f6af41d12368747b61a98bb50e03a78ebb6163e4 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 11 Oct 2026 09:38:52 -0700
Subject: [PATCH] Make snprintf %p tests consistent
Fixes snprintf %p test on Solaris 11.4
Fixes https://github.com/libsdl-org/SDL/issues/16482
---
test/testautomation_stdlib.c | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/test/testautomation_stdlib.c b/test/testautomation_stdlib.c
index fd222183be5fa..c5664dd54e04f 100644
--- a/test/testautomation_stdlib.c
+++ b/test/testautomation_stdlib.c
@@ -327,10 +327,10 @@ static int SDLCALL stdlib_snprintf(void *arg)
result = SDL_snprintf(text, sizeof(text), "%p", (void *)0x1234abcd);
expected = "0x1234abcd";
- expected2 = "1234ABCD";
- expected3 = "000000001234ABCD";
- expected4 = "1234abcd";
- expected5 = "000000001234abcd";
+ expected2 = "1234abcd";
+ expected3 = "000000001234abcd";
+ expected4 = "1234ABCD";
+ expected5 = "000000001234ABCD";
SDLTest_AssertPass("Call to SDL_snprintf(text, sizeof(text), \"%%p\", 0x1234abcd)");
SDLTest_AssertCheck(SDL_strcmp(text, expected) == 0 ||
SDL_strcmp(text, expected2) == 0 ||
@@ -347,10 +347,10 @@ static int SDLCALL stdlib_snprintf(void *arg)
result = SDL_snprintf(text, sizeof(text), "A %p B", (void *)0x1234abcd);
expected = "A 0x1234abcd B";
- expected2 = "A 1234ABCD B";
- expected3 = "A 000000001234ABCD B";
- expected4 = "A 1234abcd B";
- expected5 = "A 000000001234abcd B";
+ expected2 = "A 1234abcd B";
+ expected3 = "A 000000001234abcd B";
+ expected4 = "A 1234ABCD B";
+ expected5 = "A 000000001234ABCD B";
SDLTest_AssertPass("Call to SDL_snprintf(text, sizeof(text), \"A %%p B\", 0x1234abcd)");
SDLTest_AssertCheck(SDL_strcmp(text, expected) == 0 ||
SDL_strcmp(text, expected2) == 0 ||
@@ -369,16 +369,22 @@ static int SDLCALL stdlib_snprintf(void *arg)
if (is_at_least_64bit_system) {
result = SDL_snprintf(text, sizeof(text), "%p", (void *)SDL_SINT64_C(0x1ba07bddf60));
expected = "0x1ba07bddf60";
- expected2 = "000001BA07BDDF60";
+ expected2 = "1ba07bddf60";
expected3 = "000001ba07bddf60";
+ expected4 = "1BA07BDDF60";
+ expected5 = "000001BA07BDDF60";
SDLTest_AssertPass("Call to SDL_snprintf(text, sizeof(text), \"%%p\", 0x1ba07bddf60)");
SDLTest_AssertCheck(SDL_strcmp(text, expected) == 0 ||
SDL_strcmp(text, expected2) == 0 ||
- SDL_strcmp(text, expected3) == 0,
+ SDL_strcmp(text, expected3) == 0 ||
+ SDL_strcmp(text, expected4) == 0 ||
+ SDL_strcmp(text, expected5) == 0,
"Check text, expected: '%s', got: '%s'", expected, text);
SDLTest_AssertCheck(result == SDL_strlen(expected) ||
result == SDL_strlen(expected2) ||
- result == SDL_strlen(expected3),
+ result == SDL_strlen(expected3) ||
+ result == SDL_strlen(expected4) ||
+ result == SDL_strlen(expected5),
"Check result value, expected: %d, got: %d", (int)SDL_strlen(expected), result);
}
return TEST_COMPLETED;