Report 0336 Actions
Problem Report Number |
0336 |
Submitter's Classification |
Test Suite problem |
State |
Resolved |
Resolution |
Permanent Interpretation (PIN) |
Problem Resolution ID |
PIN.X.0052 |
Raised |
1995-09-29 08:00 |
Updated |
2003-03-13 08:00 |
Published |
1995-11-02 08:00 |
Product Standard |
Internationalised System Calls and Libraries (XPG4) |
Certification Program |
The Open Brand certification program |
Test Suite |
VSX4 version 4.3.5 |
Test Identification |
/XPG4.os/wstring/wcscoll/T.wcscoll,et.al. |
Specification |
System Interfaces and Headers Issue 4 |
Location in Spec |
See Problem Text |
Problem Summary |
PIN4.052 >From XSH4 version 2, p. 523: Upon successful completion, setlocale() returns the string associated with the specified category for the new locale. Otherwise, setlocale() returns a null pointer and th... |
Problem Text |
>From XSH4 version 2, p. 523:
Upon successful completion, setlocale() returns the string associated with the specified category for the new locale. Otherwise, setlocale() returns a null pointer and the program's locale is not changed.
The standard does not specify the return value if an unspecifed category in an otherwise valid locale is selected. In this case, we consider the operation unsuccessful, return a null pointer, and leave the locale unchanged.
In the instances above, setlocale(LC_<cat>,"VSX4L0") failed, where VSX4L0 is a pseudolanguage having only an LC_CTYPE category and <cat> is a category unspecified in VSX4L0. The test suite expects a successful selection of an undefined category. This behavior is undefined and the test suite is in error.
|
Test Output |
Test Results:
/tset/XPG4.os/wstring/wcscoll/T.wcscoll 1 Unresolved
Test Description: If wcscoll() is supported: When a. there has been no previously successful call to setlocale(); b. collating information is not available for the currently specified language; then a call to wcscoll() is exactly equivalent to a call to wcscmp(). Otherwise: A call to wcscoll() sets errno to ENOSYS.
Test Information: setlocale(3, "VSX4L0") failed Check installation of locale
The following tests also fail in the same manner:
XPG4.os/wstring/wcsxfrm/T.wcsxfrm 1 Unresolved ANSI.os/genuts/atof/T.atof 2 Unresolved ANSI.os/genuts/strtod_X/T.strtod_X 3 Unresolved ANSI.os/string/strcoll_X/T.strcoll_X 2 Unresolved ANSI.os/string/strxfrm_X/T.strxfrm_X 2 Unresolved XPG4.os/wgenuts/wcstod/T.wcstod 3 Unresolved
|
Review Information
Review Type |
TSMA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Recommendation |
No Resolution Given |
Review Response |
The problem that is described in this request relates to a mixture of a grey area in the XSH specification and the manner in which the test suite is set up to for the pseudo languages.
The XSH specification does not define the manner in which the setlocale() call will deal with a locale category that is not specified for a particular locale. It seems that there are currently two styles of implementation provided by XPG tested system. It is necessary for systems to deal with this situation because the XBD and XCU clearly state that the localedef command needs to cater for the valid case that a non-empty subset of the categories are given in the input file. There is also an issue with the nl_lamginfo() interface which specifies that, in the case that an unsupported category is specified on a call to setlocale(), the information relating to the POSIX locale should be provided. However, this does not place a requirement on setlocale() to allow setting of an "empty" locale category.
If the above is accepted, then it would be best to set up the VSX4L0 locale such that all of the categories are present and, except for those categories already defined in the user instructions, with the values omitted if this is possible or otherwise set to the POSIX locale equivalents. This should cause all the tests to pass, though the test nl_langinfo 3 will effectively produce a "false pass" because of the way in which the locale is set.
I recommend that a Permanent Interpretation is granted and that the K/RT working group is asked to confirm that the behaviour of setlocale() with respect to a locale category that is "empty" for a given locale is unspecified. The user should then be instructed to set the VSX4L0 locale information as suggested in the previous paragraph.
|
Review Type |
Expert Group Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
No Resolution Given |
Review Conclusion |
There was no disagreement. A permanent interpretation should be granted on the grounds that the behaviour is undefined.
|
Review Type |
SA Review |
Start Date |
null |
Completed |
null |
Status |
Complete |
Review Resolution |
Permanent Interpretation (PIN) |
Review Conclusion |
A Permanent Interpretation is granted.
|
Problem Reporting System Options:
|