[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