This is an archive of the discontinued LLVM Phabricator instance.

[libcxx] Get categories.time localization tests passing on linux
Needs ReviewPublic

Authored by EricWF on Aug 20 2014, 9:12 PM.

Details

Summary

This gets all of the test under test/localization/locale.categories/category.time passing (or XFAIL) under linux.

Diff Detail

Event Timeline

EricWF updated this revision to Diff 12731.Aug 20 2014, 9:12 PM
EricWF retitled this revision from to [libcxx] Get categories.time localization tests passing on linux.
EricWF updated this object.
EricWF edited the test plan for this revision. (Show Details)
EricWF added reviewers: mclow.lists, danalbert.
EricWF added a subscriber: Unknown Object (MLST).
EricWF updated this revision to Diff 12740.Aug 21 2014, 12:05 AM

I changed the month name test data for ru_RU since the 5th month is not consistent across GLIBC distributions.

emaste added a subscriber: emaste.Aug 21 2014, 7:33 AM
emaste added inline comments.
test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
47

Perhaps !defined(__GLIBC__) instead. FreeBSD has no timezone with %c either.

mclow.lists edited edge metadata.Aug 21 2014, 8:38 AM

Same comment as previous change: Is there are *correct* result (i.e, mandated by a standard), and if so, what is it.

If it's just "implementation defined", then we're going to have to figure out how to test this stuff, and this is a reasonable start.

I need to back out the changes to get_monthname.pass.cpp and get_monthname_wide.pass.cpp. It doesn't actually fix what I had hoped.

@mclow.lists I'll keep my eye on the standard, but for the most part I'm just checking that the output matches what is in /usr/share/i18n/locales.

test/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp
47

Sounds good. The actual format of %c is still unspecified but I see the test is currently passing on FreeBSD10.

EricWF updated this revision to Diff 12979.Aug 26 2014, 6:08 PM
EricWF edited edge metadata.

I backed out changes to get_one and get_one_wide. I incorrectly thought it used the timezone, but trying to get the actual output causes it to print a bunch of non-sense characters at the end. Investigation is needed. Those tests are just marked XFAIL on linux now.