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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1662 Actions


    Problem Report Number 1662
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0466
    Raised 1999-07-13 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.0.4
    Test Identification CAPIbase/putmsg 7 25
    Problem Summary PG4U.00169 Request claims the test should not send zero-length message.
    Problem Text

    This IR is for the following assertions:

    putmsg 7
    putpmsg 7


    In both tests above, a zero length message is written using
    putmsg() or putpmsg() on the slave side of the pty loopback. The
    tests expect the master side to receive the message. However,
    page 12-24 of the Unix System V Release 4 Programmer's Guide: Streams
    states the following:

    "Since 0-length messages are used to indicate that the process on the slave
    side has closed and should be interpreted that way by the process on the master
    side, applications on the slave side should not write 0-length messages..."

    From the statement above, it can be seen that this testcase is written
    incorrectly.


    Test Output
    TEST CASE: putmsg

    TEST PURPOSE #7
    A call to int putmsg(int fildes, const struct strbuf
    *ctlptr, const struct strbuf *dataptr, int flags) when
    the len field of the structure pointed to by dataptr
    is 0 shall send a zero length data part for the message.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    PREP: Open slave side of pseudo tty
    PREP: Set O_NONBLOCK on read end of STREAM
    TEST: Put a normal priority with a zero length data
    part on the STREAM
    TEST: Zero length message was sent
    ERROR: getmsg failed, errno = 11(EAGAIN - No more processes)
    7 FAIL


    TEST CASE: putpmsg

    TEST PURPOSE #7
    A call to int putpmsg(int fildes, const struct strbuf
    *ctlptr, const struct strbuf *dataptr, int band, int
    flags) when the len field of the structure pointed to
    by dataptr is 0 shall send a zero length data part for
    the message.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    PREP: Open slave side of pseudo tty
    PREP: Set O_NONBLOCK on read end of STREAM
    TEST: Put a band 0 message with a zero length data
    part on the STREAM
    TEST: Zero length message was sent
    ERROR: getmsg failed, errno = 11(EAGAIN - No more processes)
    7 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    The text from the Unix System V Release 4 Programmer's Guide should have no
    bearing on this test case for the following reasons:

    (1) The XSI definitions of putmsg() and getmsg() clearly state the expected
    behavior when a zero length data or control part is included in a message.
    The XSI requires that messages with zero length data part will be received
    by getmsg() and will not be discarded by putmsg(). The XSI also clearly
    distinguishes between messages with no data or control part and those with
    a zero length data or control part.

    (2) The text quoted from the Guide deals with the manner of interpretation
    of a zero length message by an application after it is returned in a call
    to getmsg(). The test failure shows that the message is not being returned
    by getmsg() and so a receiving process would not have the opportunity to
    make this interpretation.

    (3) The text in the Unix System V Release 4 Programmer's Guide is only a warning
    to application programmers that they SHOULD not write zero length messages.
    The reason for this warning is that the system may send a zero length
    message to indicate that the slave process has terminated. There is no
    suggestion in this text that zero length messages will either not be sent
    or will be silently ignored on the receiving side. The ability to send
    and receive zero length messages from an implication is explicitly
    required within XSI.

    It is recommended that this request is refused.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority