SDL: stdlib: Remove test cases with impl-defined results

From 84361bcf0ab92f0802232f81909be9907839df79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carl=20=C3=85stholm?= <[EMAIL REDACTED]>
Date: Fri, 13 Sep 2024 19:08:24 +0200
Subject: [PATCH] stdlib: Remove test cases with impl-defined results

---
 test/testautomation_stdlib.c | 43 +++++++-----------------------------
 1 file changed, 8 insertions(+), 35 deletions(-)

diff --git a/test/testautomation_stdlib.c b/test/testautomation_stdlib.c
index 30702a867215b..38bbb44d73f26 100644
--- a/test/testautomation_stdlib.c
+++ b/test/testautomation_stdlib.c
@@ -4,7 +4,6 @@
 #include <SDL3/SDL.h>
 #include <SDL3/SDL_test.h>
 #include "testautomation_suites.h"
-#include "SDL_build_config.h"
 
 /* Test case functions */
 
@@ -1272,11 +1271,6 @@ static int SDLCALL stdlib_wcstol(void *arg)
     WCSTOL_TEST_CASE(L"-0", 10, 0, 2);
     WCSTOL_TEST_CASE(L" - 1", 0, 0, 0); // invalid input
 
-#ifndef HAVE_WCSTOL
-    // implementation-defined
-    WCSTOL_TEST_CASE(L" +0x", 0, 0, 3);
-#endif
-
     // values near the bounds of the type
     if (sizeof(long) == 4) {
         WCSTOL_TEST_CASE(L"2147483647", 10, 2147483647, 10);
@@ -1327,11 +1321,6 @@ static int SDLCALL stdlib_strtox(void *arg)
     STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "-0", 10, 0, 2);
     STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", " - 1", 0, 0, 0); // invalid input
 
-#ifndef HAVE_STRTOULL
-    // implementation-defined
-    STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", " +0x", 0, 0, 3);
-#endif
-
     // We know that SDL_strtol, SDL_strtoul and SDL_strtoll share the same code path as SDL_strtoull under the hood,
     // so the most interesting test cases are those close to the bounds of the integer type.
 
@@ -1349,11 +1338,6 @@ static int SDLCALL stdlib_strtox(void *arg)
         STRTOX_TEST_CASE(SDL_strtoul, unsigned long, "%lu", "4294967295", 10, 4294967295, 10);
         STRTOX_TEST_CASE(SDL_strtoul, unsigned long, "%lu", "4294967296", 10, 4294967295, 10);
         STRTOX_TEST_CASE(SDL_strtoul, unsigned long, "%lu", "-4294967295", 10, 1, 11);
-#ifndef HAVE_STRTOUL
-        // implementation-defined
-        STRTOX_TEST_CASE(SDL_strtoul, unsigned long, "%lu", "-4294967296", 10, 4294967295, 11);
-        STRTOX_TEST_CASE(SDL_strtoul, unsigned long, "%lu", "-9999999999999999999999999999999999999999", 10, 4294967295, 41);
-#endif
     }
 
     if (sizeof(long long) == 8) {
@@ -1366,11 +1350,6 @@ static int SDLCALL stdlib_strtox(void *arg)
         STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "18446744073709551615", 10, 18446744073709551615ULL, 20);
         STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "18446744073709551616", 10, 18446744073709551615ULL, 20);
         STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "-18446744073709551615", 10, 1, 21);
-#ifndef HAVE_STRTOULL
-        // implementation-defined
-        STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "-18446744073709551616", 10, 18446744073709551615ULL, 21);
-        STRTOX_TEST_CASE(SDL_strtoull, unsigned long long, "%llu", "-9999999999999999999999999999999999999999", 10, 18446744073709551615ULL, 41);
-#endif
     }
 
 #undef STRTOX_TEST_CASE
@@ -1380,26 +1359,20 @@ static int SDLCALL stdlib_strtox(void *arg)
 
 static int SDLCALL stdlib_strtod(void *arg)
 {
-#define STRTOD_TEST_CASE(str, expected_result, expected_endp_offset) do {                                                                              \
-        const char *s = str;                                                                                                                           \
-        double r, expected_r = expected_result;                                                                                                        \
-        char *ep, *expected_ep = (char *)s + expected_endp_offset;                                                                                     \
-        r = SDL_strtod(s, &ep);                                                                                                                        \
-        SDLTest_AssertPass("Call to SDL_strtod(" #str ", &endp)");                                                                                     \
-        SDLTest_AssertCheck(r == expected_r && (r != 0.0 || 1.0 / r == 1.0 / expected_r), "Check result value, expected: %f, got: %f", expected_r, r); \
-        SDLTest_AssertCheck(ep == expected_ep, "Check endp value, expected: %p, got: %p", expected_ep, ep);                                            \
+#define STRTOD_TEST_CASE(str, expected_result, expected_endp_offset) do {                                   \
+        const char *s = str;                                                                                \
+        double r, expected_r = expected_result;                                                             \
+        char *ep, *expected_ep = (char *)s + expected_endp_offset;                                          \
+        r = SDL_strtod(s, &ep);                                                                             \
+        SDLTest_AssertPass("Call to SDL_strtod(" #str ", &endp)");                                          \
+        SDLTest_AssertCheck(r == expected_r, "Check result value, expected: %f, got: %f", expected_r, r);   \
+        SDLTest_AssertCheck(ep == expected_ep, "Check endp value, expected: %p, got: %p", expected_ep, ep); \
     } while (0)
 
     STRTOD_TEST_CASE("\t  123.75abcxyz", 123.75, 9); // skip leading space
     STRTOD_TEST_CASE("+999.555", 999.555, 8);
     STRTOD_TEST_CASE("-999.555", -999.555, 8);
 
-#ifndef HAVE_STRTOD
-    // implementation-defined
-    STRTOD_TEST_CASE("-0", -0.0, 2);
-    STRTOD_TEST_CASE(" - 1", 0.0, 0); // invalid input
-#endif
-
 #undef STRTOD_TEST_CASE
 
     return TEST_COMPLETED;