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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1921 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 1921.


Report 1921 Actions


    Problem Report Number 1921
    Submitter's Classification Specification problem
    State Resolved
    Resolution Temporary Interpretation (TIN)
    Problem Resolution ID TIN.X.0087
    Raised 2001-10-16 08:00
    Updated 2003-03-13 08:00
    Published 2001-10-16 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.4.5
    Test Identification XPG4.os/genuts/regcomp 32, 34, 36, 38
    Specification System Interfaces and Headers Issue 5
    Location in Spec See Problem Text
    Linked Problem Reports PIN4.042, (in, old, system)
    Problem Summary TIN5.006 The XPG4 XSI doesn't support the expected results for these testcases. The return values REG_EBRACE and REG_BADBR are valid only for BREs, the spec doesn't define any corresponding return values for...
    Problem Text
    The XPG4 XSI doesn't support the expected results for these testcases.
    The return values REG_EBRACE and REG_BADBR are valid only for BREs,
    the spec doesn't define any corresponding return values for EREs.
    Additionally, on page 101 of the XBD spec, the following is found:

    *+?{ The asterisk, plus-sign, question-mark and left brace are special
    except when used in a bracket expression (see section 7.3.5 on page
    97). Any of the following uses produce undefined results:

    - if these characters appear first in an ERE, or immediately
    following a vertical-line, circumflex, or left-parenthesis

    - if a left brace is not part of a valid interval expression.

    Thus, it is up to the implementation to decide how handle the patterns
    used in these testcases. Our implementation treats invalid interval
    expressions as ordinary characters, and thus the return code of 0.
    Test Output
    ************************************************************************
    /tset/XPG4.os/genuts/regcomp/T.regcomp 32 Failed

    Test Description:
    If regcomp() is supported:
    When the REG_EXTENDED flag is set in cflags, and pattern contains
    an expression of the form "{m,n}", "{m,}" or "{m}", in which
    either m or n is not a number, then a call to regcomp(preg,
    pattern, cflags) returns either REG_BADBR or REG_BADPAT.
    Otherwise:
    A call to regcomp() returns REG_ENOSYS and sets errno to ENOSYS.

    Test Strategy:
    CREATE pattern with 890magIFd{0,j} , 890magIFD{k,3} , 890magIFD{k,} ,
    890magIFD{k}
    CALL regcomp() with pattern and cflags set to REG_EXTENDED
    VERIFY that regcomp() returned either REG_BADBR or REG_BADPAT

    Test Information:
    regcomp(preg, "890magIFd{0,%}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{%,3}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{%,}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{!}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    ************************************************************************

    ************************************************************************
    /tset/XPG4.os/genuts/regcomp/T.regcomp 34 Failed

    Test Description:
    If regcomp() is supported:
    When the REG_EXTENDED flag is set in cflags, and pattern contains
    an expression of the form "{m,n}", "{m,}" or "{m}", in which
    either m or n is greater than {RE_DUP_MAX}, then a call to
    regcomp(preg, pattern, cflags) returns either REG_BADBR or
    REG_BADPAT.
    Otherwise:
    A call to regcomp() returns REG_ENOSYS and sets errno to ENOSYS.

    Test Strategy:
    CREATE pattern with {0,RE_DUP_MAX+1}, {RE_DUP_MAX+1,n},
    {RE_DUP_MAX+1,}, {RE_DUP_MAX+1}
    CALL regcomp() with pattern and cflags set to REG_EXTENDED
    VERIFY that regcomp() returned either REG_BADBR or REG_BADPAT

    Test Information:
    regcomp(preg, "890magIFd{0,256}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{256,3}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{256,}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    regcomp(preg, "890magIFd{256}", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    ************************************************************************

    ************************************************************************
    /tset/XPG4.os/genuts/regcomp/T.regcomp 36 Failed

    Test Description:
    If regcomp() is supported:
    When the REG_EXTENDED flag is set in cflags, and pattern contains
    a {} expression with more than two numbers, then a call to
    regcomp(preg, pattern, cflags) returns either REG_BADBR or
    REG_BADPAT.
    Otherwise:
    A call to regcomp() returns REG_ENOSYS and sets errno to ENOSYS.

    Test Strategy:
    CREATE pattern with {4,5,7}
    CALL regcomp() with pattern and cflags set to REG_EXTENDED
    VERIFY that regcomp() returned either REG_BADBR or REG_BADPAT

    Test Information:
    regcomp(preg, "xy{4,5,7}zabc", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    ************************************************************************

    ************************************************************************
    /tset/XPG4.os/genuts/regcomp/T.regcomp 38 Failed

    Test Description:
    If regcomp() is supported:
    When the REG_EXTENDED flag is set in cflags, and pattern contains
    an expression of the form "{m,n}", in which m is greater than n,
    then a call to regcomp(preg, pattern, cflags) returns either
    REG_BADBR or REG_BADPAT.
    Otherwise:
    A call to regcomp() returns REG_ENOSYS and sets errno to ENOSYS.

    Test Strategy:
    CREATE pattern with {3,1}
    CALL regcomp() with pattern and cflags set to REG_EXTENDED
    VERIFY that regcomp() returned either REG_BADBR or REG_BADPAT

    Test Information:
    regcomp(preg, "def{3,1}cba", REG_EXTENDED) returned 0 (No Error)
    expected 10 (REG_BADBR) or 2 (REG_BADPAT)
    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    The XSH4 grey area identified in PIN4.042 still exists in XSH5.
    However, since regcomp() is a POSIX.2 function, it is recommended
    that a Temporary Interpretation is granted for XSH5 and a POSIX.2
    interpretation request is submitted.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Temporary Interpretation (TIN)
    Review Conclusion
    A Temporary Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority