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

This reverts commit b61fb18456.

This commit landed with build failures in the pre-commit CI
https://buildkite.com/llvm-project/libcxx-ci/builds/34153
This commit is contained in:
Mark de Wever
2024-03-16 20:22:49 +01:00
parent c9325f8a2e
commit 0847c903c8
3 changed files with 37 additions and 52 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);