[
https://issues.apache.org/jira/browse/STDCXX-571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Travis Vitek updated STDCXX-571:
--------------------------------
Attachment: 22.locale.numpunct.mt.cpp
2007-09-26 Travis Vitek <[EMAIL PROTECTED]>
STDCXX-571
* 22.locale.numpunct.mt.cpp (run_test): Use C++ locale to
generate test data. This is to avoid any incompatibilities
between C and C++ locales.
(thread_func): Updated to use changed test data types.
> 22.locale.numpunct.mt fails unexpectedly because of
> ----------------------------------------------------
>
> Key: STDCXX-571
> URL: https://issues.apache.org/jira/browse/STDCXX-571
> Project: C++ Standard Library
> Issue Type: Improvement
> Components: Tests
> Affects Versions: 4.2
> Reporter: Travis Vitek
> Priority: Minor
> Fix For: 4.2.1
>
> Attachments: 22.locale.numpunct.mt.cpp
>
>
> The current numpunct.mt test fails on at least one platform because the
> initialization code and the test code use two different methods for
> retrieving the numpunct data. The run_test function uses std::localeconv(),
> and thread_func uses the C++ locale numpunct facet. In most situations this
> isn't a problem.
> Unfortunately, due to incompatibilities between the C and C++ locale details,
> the thousands seperator is different with the "C" locale. For C++ it is ','
> and for C it is the empty string. Here is a quick test to show the problem
> that the test sees.
> #include <clocale>
> #include <locale>
> int main()
> {
> if (!std::setlocale (LC_ALL, "C"))
> return 1;
> const std::lconv* const pconv = std::localeconv ();
> // test against the specialization directly
> const std::numpunct<char> np(0);
> assert (*pconv->decimal_point == np.decimal_point ());
> assert (*pconv->thousands_sep == np.thousands_sep ());
> return 0;
> }
> The test should be enhanced to use the C++ locale for both run_test and
> thread_func.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.