stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (STDCXX-571) 22.locale.numpunct.mt fails unexpectedly because of
Date Thu, 27 Sep 2007 16:23:50 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12530561
] 

vitek edited comment on STDCXX-571 at 9/27/07 9:23 AM:
--------------------------------------------------------------

2007-09-26  Travis Vitek  <vitek@roguewave.com>

	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.
	(main): add support for command line options nlocales and
	shared-locale for consistency with other multithreaded locale
	tests.

      was (Author: vitek):
    2007-09-26  Travis Vitek  <vitek@roguewave.com>

	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.


Mime
View raw message