[cfe-dev] libcxx: Disabling locale-related libc++ tests on Android
William Chan (ιζΊζ)
willchan at chromium.org
Thu May 29 03:26:52 PDT 2014
This is my first post here so apologies for any silliness about this
question. Several tests that I've looked at don't work on Android due to
lack of locale support (
https://code.google.com/p/android/issues/detail?id=57313#c2). So I'd like
to disable tests that rely on this. An example of such a test is
http://llvm.org/svn/llvm-project/libcxx/trunk/test/re/re.alg/re.alg.match/basic.pass.cpp,
which does something like:
std::locale::global(std::locale("cs_CZ.ISO8859-2"));
{
std::cmatch m;
const char s[] = "m";
assert(std::regex_match(s, m, std::regex("[a[=M=]z]",
std::regex_constants::basic)));
assert(m.size() == 1);
assert(!m.prefix().matched);
assert(m.prefix().first == s);
assert(m.prefix().second == m[0].first);
assert(!m.suffix().matched);
assert(m.suffix().first == m[0].second);
assert(m.suffix().second == m[0].second);
assert(m.length(0) == std::char_traits<char>::length(s));
assert(m.position(0) == 0);
assert(m.str(0) == s);
}
{
std::cmatch m;
const char s[] = "Ch";
assert(std::regex_match(s, m, std::regex("[a[.ch.]z]",
std::regex_constants::basic | std::regex_constants::icase)));
assert(m.size() == 1);
assert(!m.prefix().matched);
assert(m.prefix().first == s);
assert(m.prefix().second == m[0].first);
assert(!m.suffix().matched);
assert(m.suffix().first == m[0].second);
assert(m.suffix().second == m[0].second);
assert(m.length(0) == std::char_traits<char>::length(s));
assert(m.position(0) == 0);
assert(m.str(0) == s);
}
std::locale::global(std::locale("C"));
What's the right way to disable this test for Android? Is there an
appropriate #ifdef I can use? Or should I move the tests out to a separate
file that's not built for Android?
Cheers.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140529/d7ade308/attachment.html>
More information about the cfe-dev
mailing list