[libc++] Re-disable parts of the failing RU locale tests on Apple

Instead of completely disabling the tests on Apple, which makes them
disabled on all platforms we test (and hence useless), this commit
disables only the assertions that actually fail. I also created a
bug report to track re-enabling them (https://llvm.org/PR45739).
This commit is contained in:
Louis Dionne 2020-04-29 12:49:25 -04:00
parent 4632b7292a
commit 5b97aa14f4
2 changed files with 54 additions and 0 deletions

View File

@ -33,6 +33,19 @@
#include "platform_support.h" // locale name macros
// TODO:
// Some of the assertions in this test are failing on Apple platforms.
// Until we figure out the problem and fix it, disable these tests on
// Apple platforms. Note that we're not using XFAIL or UNSUPPORTED markup
// here, because this test would otherwise be disabled on all platforms
// we test. To avoid this test becoming entirely stale, we just disable
// the parts that fail.
//
// See https://llvm.org/PR45739 for the bug tracking this.
#if defined(__APPLE__)
# define APPLE_FIXME
#endif
typedef std::money_get<char, input_iterator<const char*> > Fn;
class my_facet
@ -301,6 +314,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == 0);
}
#if !defined(APPLE_FIXME)
{ // zero, showbase
std::string v = "0,00 RUB ";
showbase(ios);
@ -314,6 +328,7 @@ int main(int, char**)
assert(ex == 0);
noshowbase(ios);
}
#endif
{ // negative one, showbase
std::string v = "-0,01 RUB ";
typedef input_iterator<const char*> I;
@ -325,6 +340,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == -1);
}
#if !defined(APPLE_FIXME)
{ // negative one, showbase
std::string v = "-0,01 RUB ";
showbase(ios);
@ -338,6 +354,7 @@ int main(int, char**)
assert(ex == -1);
noshowbase(ios);
}
#endif
{ // positive, showbase
std::string v = "1 234 567,89 RUB ";
typedef input_iterator<const char*> I;
@ -349,6 +366,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == 123456789);
}
#if !defined(APPLE_FIXME)
{ // positive, showbase
std::string v = "1 234 567,89 RUB ";
showbase(ios);
@ -362,6 +380,8 @@ int main(int, char**)
assert(ex == 123456789);
noshowbase(ios);
}
#endif
#if !defined(APPLE_FIXME)
{ // negative, showbase
std::string v = "-1 234 567,89 RUB ";
showbase(ios);
@ -375,6 +395,7 @@ int main(int, char**)
assert(ex == -123456789);
noshowbase(ios);
}
#endif
{ // negative, showbase
std::string v = "-1 234 567,89 \xD1\x80\xD1\x83\xD0\xB1"".";
showbase(ios);
@ -635,6 +656,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == 0);
}
#if !defined(APPLE_FIXME)
{ // zero, showbase
std::wstring v = L"0,00 RUB ";
showbase(ios);
@ -648,6 +670,7 @@ int main(int, char**)
assert(ex == 0);
noshowbase(ios);
}
#endif
{ // negative one, showbase
std::wstring v = L"-0,01 RUB ";
typedef input_iterator<const wchar_t*> I;
@ -659,6 +682,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == -1);
}
#if !defined(APPLE_FIXME)
{ // negative one, showbase
std::wstring v = L"-0,01 RUB ";
showbase(ios);
@ -672,6 +696,7 @@ int main(int, char**)
assert(ex == -1);
noshowbase(ios);
}
#endif
{ // positive, showbase
std::wstring v = L"1 234 567,89 RUB ";
typedef input_iterator<const wchar_t*> I;
@ -683,6 +708,7 @@ int main(int, char**)
assert(err == std::ios_base::goodbit);
assert(ex == 123456789);
}
#if !defined(APPLE_FIXME)
{ // positive, showbase
std::wstring v = L"1 234 567,89 RUB ";
showbase(ios);
@ -696,6 +722,8 @@ int main(int, char**)
assert(ex == 123456789);
noshowbase(ios);
}
#endif
#if !defined(APPLE_FIXME)
{ // negative, showbase
std::wstring v = L"-1 234 567,89 RUB ";
showbase(ios);
@ -709,6 +737,7 @@ int main(int, char**)
assert(ex == -123456789);
noshowbase(ios);
}
#endif
{ // negative, showbase
std::wstring v = L"-1 234 567,89 \x440\x443\x431"".";
showbase(ios);

View File

@ -33,6 +33,19 @@
#include "platform_support.h" // locale name macros
// TODO:
// Some of the assertions in this test are failing on Apple platforms.
// Until we figure out the problem and fix it, disable these tests on
// Apple platforms. Note that we're not using XFAIL or UNSUPPORTED markup
// here, because this test would otherwise be disabled on all platforms
// we test. To avoid this test becoming entirely stale, we just disable
// the parts that fail.
//
// See https://llvm.org/PR45739 for the bug tracking this.
#if defined(__APPLE__)
# define APPLE_FIXME
#endif
typedef std::money_put<char, output_iterator<char*> > Fn;
class my_facet
@ -68,6 +81,7 @@ int main(int, char**)
{
const my_facet f(1);
// char, national
#if !defined(APPLE_FIXME)
{ // zero
long double v = 0;
char str[100];
@ -100,6 +114,7 @@ int main(int, char**)
std::string ex(str, iter.base());
assert(ex == "-1 234 567,89 ");
}
#endif
{ // zero, showbase
long double v = 0;
showbase(ios);
@ -176,6 +191,7 @@ int main(int, char**)
// char, international
noshowbase(ios);
ios.unsetf(std::ios_base::adjustfield);
#if !defined(APPLE_FIXME)
{ // zero
long double v = 0;
char str[100];
@ -244,6 +260,7 @@ int main(int, char**)
std::string ex(str, iter.base());
assert(ex == "-1 234 567,89 RUB ");
}
#endif
{ // negative, showbase, left
long double v = -123456789;
showbase(ios);
@ -256,6 +273,7 @@ int main(int, char**)
assert(ex == "-1 234 567,89 RUB ");
assert(ios.width() == 0);
}
#if !defined(APPLE_FIXME)
{ // negative, showbase, internal
long double v = -123456789;
showbase(ios);
@ -280,12 +298,14 @@ int main(int, char**)
assert(ex == " -1 234 567,89 RUB ");
assert(ios.width() == 0);
}
#endif
}
{
const my_facetw f(1);
// wchar_t, national
noshowbase(ios);
ios.unsetf(std::ios_base::adjustfield);
#if !defined(APPLE_FIXME)
{ // zero
long double v = 0;
wchar_t str[100];
@ -318,6 +338,7 @@ int main(int, char**)
std::wstring ex(str, iter.base());
assert(ex == L"-1 234 567,89 ");
}
#endif
{ // zero, showbase
long double v = 0;
showbase(ios);
@ -394,6 +415,7 @@ int main(int, char**)
// wchar_t, international
noshowbase(ios);
ios.unsetf(std::ios_base::adjustfield);
#if !defined(APPLE_FIXME)
{ // zero
long double v = 0;
wchar_t str[100];
@ -462,6 +484,7 @@ int main(int, char**)
std::wstring ex(str, iter.base());
assert(ex == L"-1 234 567,89 RUB ");
}
#endif
{ // negative, showbase, left
long double v = -123456789;
showbase(ios);
@ -474,6 +497,7 @@ int main(int, char**)
assert(ex == L"-1 234 567,89 RUB ");
assert(ios.width() == 0);
}
#if !defined(APPLE_FIXME)
{ // negative, showbase, internal
long double v = -123456789;
showbase(ios);
@ -498,6 +522,7 @@ int main(int, char**)
assert(ex == L" -1 234 567,89 RUB ");
assert(ios.width() == 0);
}
#endif
}
return 0;