Hi mclow.lists, danalbert,
GLIBC collates en_US differently than Apple libc. Perhaps we should just XFAIL.
http://reviews.llvm.org/D5000
Files:
test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
Index:
test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
===================================================================
---
test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
+++
test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
@@ -28,6 +28,14 @@
int main()
{
+ // Ensure that the default locale is known. Othewise the second test could
fail.
+ putenv(const_cast<char*>("LANG=" LOCALE_en_US_UTF_8));
+ // GLIBC collates en_US differently
+#if !defined(__GLIBC__)
+ int const expect = 1;
+#else
+ int const expect = -1;
+#endif
{
std::locale l(LOCALE_en_US_UTF_8);
{
@@ -35,14 +43,14 @@
std::string s2("aaaaaaA");
std::string s3("BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
{
const std::collate<wchar_t>& f =
std::use_facet<std::collate<wchar_t> >(l);
std::wstring s2(L"aaaaaaA");
std::wstring s3(L"BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
}
{
@@ -52,14 +60,14 @@
std::string s2("aaaaaaA");
std::string s3("BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
{
const std::collate<wchar_t>& f =
std::use_facet<std::collate<wchar_t> >(l);
std::wstring s2(L"aaaaaaA");
std::wstring s3(L"BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
}
{
Index: test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
===================================================================
--- test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
+++ test/localization/locale.categories/category.collate/locale.collate.byname/compare.pass.cpp
@@ -28,6 +28,14 @@
int main()
{
+ // Ensure that the default locale is known. Othewise the second test could fail.
+ putenv(const_cast<char*>("LANG=" LOCALE_en_US_UTF_8));
+ // GLIBC collates en_US differently
+#if !defined(__GLIBC__)
+ int const expect = 1;
+#else
+ int const expect = -1;
+#endif
{
std::locale l(LOCALE_en_US_UTF_8);
{
@@ -35,14 +43,14 @@
std::string s2("aaaaaaA");
std::string s3("BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
{
const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l);
std::wstring s2(L"aaaaaaA");
std::wstring s3(L"BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
}
{
@@ -52,14 +60,14 @@
std::string s2("aaaaaaA");
std::string s3("BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
{
const std::collate<wchar_t>& f = std::use_facet<std::collate<wchar_t> >(l);
std::wstring s2(L"aaaaaaA");
std::wstring s3(L"BaaaaaA");
assert(f.compare(s2.data(), s2.data() + s2.size(),
- s3.data(), s3.data() + s3.size()) == 1);
+ s3.data(), s3.data() + s3.size()) == expect);
}
}
{
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits