Improving locale test

Fixes #18205

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18211)
diff --git a/test/localetest.c b/test/localetest.c
index 3db66b7..ea80039 100644
--- a/test/localetest.c
+++ b/test/localetest.c
@@ -91,12 +91,14 @@
     X509_PUBKEY *cert_pubkey = NULL;
     const unsigned char *p = der_bytes;
 
-    TEST_ptr(setlocale(LC_ALL, ""));
+    if (setlocale(LC_ALL, "") == NULL)
+        return TEST_skip("Cannot set the locale necessary for test");
 
     res = strcasecmp(str1, str2);
     TEST_note("Case-insensitive comparison via strcasecmp in current locale %s\n", res ? "failed" : "succeeded");
 
-    TEST_false(OPENSSL_strcasecmp(str1, str2));
+    if (!TEST_false(OPENSSL_strcasecmp(str1, str2)))
+        return 0;
 
     cert = d2i_X509(NULL, &p, sizeof(der_bytes));
     if (!TEST_ptr(cert))