HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 0163 Details

Help Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges

This page provides all information on Problem Report 0163.


Report 0163 Actions


    Problem Report Number 0163
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0163
    Raised 1994-08-06 08:00
    Updated 2003-03-13 08:00
    Published 1994-06-14 08:00
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.3.4
    Test Identification ANSI.os/charhandle/isxdigit 1
    Problem Summary TSD4.163 This was submitted to X/Open during the beta testing of VSX 4.3.3. The discussion between the implementor and vsx_support may be reviewed by viewing err.4.3.3.[056, 058, 065]. continuing the discussio...
    Problem Text
    This was submitted to X/Open during the beta testing of VSX 4.3.3.
    The discussion between the implementor and vsx_support may be reviewed by
    viewing err.4.3.3.[056, 058, 065].

    continuing the discussion

    from err.4.3.3.065
    vsx_support comments

    |You say that isxdigit(A-F) must return > 0. The question is what
    |is meant by A-F. We believe it means A-F in the portable
    |character set, i.e. if the function is called using the C source
    |code:
    |
    | isxdigit('A');
    |
    |then the return value must be > 0. The value of the C language
    |constant 'A' is always 0x41 regardless of the current locale
    |setting.

    This is wrong, and is not supported by the standard. Quoting a member of
    I18N working group: "There is no mapping of the characters in the
    portable character set to any codeset, ASCII or otherwise, in the standard.
    The isxdigit('A') call mentioned will return unpredictable results, based
    upon the locale present when the code is executed."

    He went on to say that the Base WG (of which he was a part) was *quite*
    *specific* in avoiding *ANY* mapping of character to codeset. The
    behavior we are trying to implement (and is failing in your test) was
    intentionally written (or you might say, intentionally allowed) by the
    Base WG.

    from err.4.3.3.065
    vsx_support comments

    |Presumably the reason localedef is automatically classifying
    |0x81-0x86 as xdigit is because you have used the symbolic names
    |<A>, <B>, etc. for these characters in VSX4L1, and <a>, <b>,
    |etc. in VSX4L2. We suggest that you try changing these symbolic
    |names to, say, <PSLA>, <PSLB>, etc. Hopefully this will allow
    |localedef to install VSX4L1 and VSX4L2 with the correct character
    |classifications, as described in E.3.1 and E.3.2. If localedef
    |insists that the symbolic names <A>, <B>, etc. must appear in the
    |source file, you should use these names for the characters 0x41-
    |0x46 instead of the names you are currently using.

    Your test is requiring *NON-conformant* behavior to pass, based on
    the comment above and the wording of the Standard, which
    specifically allows characters and codesets to be orthogonal.
    Test Output
    This waiver request also pertains to the following testcases
    tset/ANSI.os/charhandle/iswxdigit 2
    tset/XPG4.os/wcharhandle/iswctype 2

    ************************************************************************
    /tset/ANSI.os/charhandle/isxdigit/T.isxdigit 1 Failed

    Test Description:

    isxdigit() returns non-zero if and only if the character is a
    hexadecimal digit (i.e. 0-9, a-f, A-F) in the ASCII codeset. This
    classification is independent of the current setting of the locale.
    Posix Ref: Component ISXDIGIT Assertion 8.1-04(A)

    Test Strategy:
    CREATE child process
    SET locale for LC_ALL to VSX4L1
    FOR all ASCII values :
    VERIFY value returned by isxdigit() against expected value
    SET locale for LC_CTYPE to VSX4L2
    FOR all ASCII values :
    VERIFY value returned by isxdigit() against expected value

    Test Information:
    isxdigit(0x81) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x82) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x83) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x84) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x85) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x86) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x81) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x82) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x83) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x84) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x85) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    isxdigit(0x86) failed
    isxdigit returns non-zero for hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    Actual return value: 2048
    ************************************************************************

    ************************************************************************
    /tset/XPG4.os/wcharhandle/iswctype/T.iswctype 2 Failed

    Test Description:
    When the wide character c is defined to not have property property in
    the wide character classification table associated with the current
    locale specified in LC_CTYPE, then a call to iswctype() returns zero.


    Test Strategy:
    OBTAIN multibyte strings using wcharcfg()
    CHILD process:
    CHANGE to test locale using setlocale()
    FOR each valid property name, call wctype()
    VERIFY that return value from wctype() when used as the second
    argument to iswctype(), with character argument not with that
    property returns zero.

    Test Information:
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L1
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    With locale set to VSX4L2
    iswctype(, wctype(xdigit)) returned 2048, expected zero
    ************************************************************************

    ************************************************************************
    /tset/XPG4.os/wcharhandle/iswxdigit/T.iswxdigit 2 Failed

    Test Description:
    When the wide character is not a hexadecimal digit (i.e. 0-9, a-f, A-
    F) in the standard specification for the 'C' locale, then a call to
    iswxdigit() returns zero. This classification is independent of the
    current setting of the locale.

    Test Strategy:
    CREATE child process
    (child) FOR locales C (default), VSX4L1 and VSX4L2, for categories
    LC_ALL, LC_ALL and LC_CTYPE respectively :
    FOR all non-hexadecimal-digit ASCII values :
    VERIFY value returned by iswxdigit() is zero

    Test Information:
    iswxdigit(0x81) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x82) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x83) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x84) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x85) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x86) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L1
    Current category is LC_ALL
    Expected return value: 0
    iswxdigit(0x81) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    iswxdigit(0x82) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    iswxdigit(0x83) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    iswxdigit(0x84) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    iswxdigit(0x85) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    iswxdigit(0x86) failed
    iswxdigit returns zero for non-hexadecimal digit characters
    Current language is VSX4L2
    Current category is LC_CTYPE
    Expected return value: 0
    ************************************************************************


    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    As pointed out in the full response to err.4.3.3.065, there is a
    problem with setting up the VSX psuedo-languages using the XCU4
    localedef utility. This relates to the fact that the design of
    these locales preceded the XCU4 localedef definition by some
    considerable period of time. It is accepted that the current
    psuedo languages need to be revamped in order to meet these new,
    more stringent requirements and, this being the case, it is
    recommended that this request be treated as a test suite deficiency.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion
    This is an agreed Test Suite Deficiency

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority