[libcxx-commits] [libcxx] 0847c90 - Revert "[libc++] Fix tests on musl (#85085)"

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Sat Mar 16 12:23:44 PDT 2024


Author: Mark de Wever
Date: 2024-03-16T20:22:49+01:00
New Revision: 0847c903c8a04a2bdf53d5f1b93be5705d998801

URL: https://github.com/llvm/llvm-project/commit/0847c903c8a04a2bdf53d5f1b93be5705d998801
DIFF: https://github.com/llvm/llvm-project/commit/0847c903c8a04a2bdf53d5f1b93be5705d998801.diff

LOG: Revert "[libc++] Fix tests on musl (#85085)"

This reverts commit b61fb18456ecd798b2fc340367018ab3109ebfae.

This commit landed with build failures in the pre-commit CI
https://buildkite.com/llvm-project/libcxx-ci/builds/34153

Added: 
    

Modified: 
    libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
index d4bbde75ae8821..068202c6e41508 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
@@ -44,19 +44,14 @@ int main(int, char**)
         errno = E2BIG; // something that message will never generate
         const std::error_category& e_cat1 = std::generic_category();
         const std::string msg = e_cat1.message(-1);
-        // Exact message format varies by platform.  We can't detect
-        // some of these (Musl in particular) using the preprocessor,
-        // so accept a few sensible messages.  Newlib unfortunately
-        // responds with an empty message, which we probably want to
-        // treat as a failure code otherwise, but we can detect that
-        // with the preprocessor.
-        LIBCPP_ASSERT(msg.rfind("Error -1 occurred", 0) == 0       // AIX
-                      || msg.rfind("No error information", 0) == 0 // Musl
-                      || msg.rfind("Unknown error", 0) == 0        // Glibc
-#if defined(_NEWLIB_VERSION)
-                      || msg.empty()
+        // Exact message format varies by platform.
+#if defined(_AIX)
+        LIBCPP_ASSERT(msg.rfind("Error -1 occurred", 0) == 0);
+#elif defined(_NEWLIB_VERSION)
+        LIBCPP_ASSERT(msg.empty());
+#else
+        LIBCPP_ASSERT(msg.rfind("Unknown error", 0) == 0);
 #endif
-        );
         assert(errno == E2BIG);
     }
 

diff  --git a/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp b/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
index eefbddd27a7f53..42fdd1cb3b91bd 100644
--- a/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
+++ b/libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
@@ -50,19 +50,14 @@ int main(int, char**) {
     errno                             = E2BIG; // something that message will never generate
     const std::error_category& e_cat1 = std::system_category();
     const std::string msg             = e_cat1.message(-1);
-    // Exact message format varies by platform.  We can't detect
-    // some of these (Musl in particular) using the preprocessor,
-    // so accept a few sensible messages.  Newlib unfortunately
-    // responds with an empty message, which we probably want to
-    // treat as a failure code otherwise, but we can detect that
-    // with the preprocessor.
-    LIBCPP_ASSERT(msg.rfind("Error -1 occurred", 0) == 0       // AIX
-                  || msg.rfind("No error information", 0) == 0 // Musl
-                  || msg.rfind("Unknown error", 0) == 0        // Glibc
-#if defined(_NEWLIB_VERSION)
-                  || msg.empty()
+    // Exact message format varies by platform.
+#if defined(_AIX)
+    LIBCPP_ASSERT(msg.rfind("Error -1 occurred", 0) == 0);
+#elif defined(_NEWLIB_VERSION)
+    LIBCPP_ASSERT(msg.empty());
+#else
+    LIBCPP_ASSERT(msg.rfind("Unknown error", 0) == 0);
 #endif
-    );
     assert(errno == E2BIG);
   }
 

diff  --git a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
index 0258ebf8724310..8637a933008fb9 100644
--- a/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
+++ b/libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
@@ -22,7 +22,6 @@
 #include <locale>
 #include <ios>
 #include <cassert>
-#include <cstdio>
 #include <streambuf>
 #include <cmath>
 #include "test_macros.h"
@@ -8935,12 +8934,11 @@ void test4()
     char str[200];
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
-
-    std::string inf;
-
-    // This should match the underlying C library
-    std::sprintf(str, "%f", INFINITY);
-    inf = str;
+#ifdef _AIX
+    std::string inf = "INF";
+#else
+    std::string inf = "inf";
+#endif
 
     const my_facet f(1);
     {
@@ -10729,27 +10727,24 @@ void test5()
     std::locale lc = std::locale::classic();
     std::locale lg(lc, new my_numpunct);
     const my_facet f(1);
-
-    std::string nan;
-    std::string NaN;
-    std::string pnan_sign;
-
-    // The output here depends on the underlying C library, so work out what
-    // that does.
-    std::sprintf(str, "%f", std::nan(""));
-    nan = str;
-
-    std::sprintf(str, "%F", std::nan(""));
-    NaN = str;
-
-    std::sprintf(str, "%+f", std::nan(""));
-    if (str[0] == '+') {
-      pnan_sign = "+";
-    }
-
-    std::string nan_padding25  = std::string(25 - nan.length(), '*');
-    std::string pnan_padding25 = std::string(25 - nan.length() - pnan_sign.length(), '*');
-
+#if defined(_AIX)
+    std::string nan= "NaNQ";
+    std::string NaN = "NaNQ";
+    std::string nan_padding25 = "*********************";
+    std::string pnan_sign = "+";
+    std::string pnan_padding25 = "********************";
+#else
+    std::string nan= "nan";
+    std::string NaN = "NAN";
+    std::string nan_padding25 = "**********************";
+#if defined(TEST_HAS_GLIBC) || defined(_WIN32)
+    std::string pnan_sign = "+";
+    std::string pnan_padding25 = "*********************";
+#else
+    std::string pnan_sign = "";
+    std::string pnan_padding25 = "**********************";
+#endif
+#endif
     {
         long double v = std::nan("");
         std::ios ios(0);


        


More information about the libcxx-commits mailing list