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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1366 Actions


    Problem Report Number 1366
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0648
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1996-11-22 08:00
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.1
    Test Identification base/putmsg 28
    Problem Summary TSD4U.00169 This test may fail on all implementations as the values for the ctlptr and dataptr arguments are reversed in the call to the function.
    Problem Text
    These tests are calling putmsg (putmsg 28) and putpmsg (putpmsg 29)
    incorrectly, and are not accurately testing their assertions on any
    platform.
    .P
    The test in question is:
    .P
    ** void test28A() - tests the assertion:
    ** ERANGE in errno and return -1 on a call to int putmsg(int fildes,
    ** const struct strbuf *ctlptr, const struct strbuf *dataptr, int flags)
    ** when the size of the control part of the message is greater than the
    ** maximum configured size of the control part of a message.

    The X/Open CAE spec (8/96) says on p613 (lines 20450 - 20455):

    The putmsg and putpmsg functions will fail if:

    [ . . . ]

    [ERANGE] [. . .] This value is also returned if the control part
    of the message is larger than the maximum configured
    size of the control part of a message, or [. . .]

    This is the assertion that test28 is supposed to verify. This test
    does not send a control message, therefore the test is broken.
    The important lines from the test itself are:

    ctl.buf = ctlbuf;
    ctl.len = max_size+1;
    flags = 0;
    if((result = putmsg(fildes[1], NULL, &ctl, flags)) != -1) {
    sprintf(ebuf,"ERROR: putmsg returned %d", result);
    tet_infoline(ebuf);
    tet_result(TET_FAIL);
    return;
    }

    A control message is created by passing a pointer as the second argument
    to putmsg; in this test the second argument is NULL. In fact the
    above call is sending a data message, which may or may not fail as
    expected depending upon the setting of a different tunable.
    It never tests the assertion that it is intended to test.
    .P
    The situation for putpmsg in test29 is the same.
    .P
    If the tunables for maximum control message size and maximum
    data message size are set to the same value this test will appear
    to pass, but in fact the assertion has never been tested.
    .P
    Note that the previous version of this test had a waiver against it for
    a different test case deficiency. We suspect that these tests were failing
    before, but that these failures were ignored because of the existence of
    this waiver. This previous waiver does not apply to the current tests,
    and it does not describe the above deficiency.
    Test Output
    TEST CASE: putmsg
    TEST PURPOSE #28
    ERANGE in errno and return -1 on a call to int
    putmsg(int fildes, const struct strbuf *ctlptr, const
    struct strbuf *dataptr, int flags) when the size of
    the control part of the message is greater than the
    maximum configured size of the control part of a
    message.
    PREP: Read VSU_STREAMS_MAX_CONTROL_SIZE configuration
    PREP: Allocate big enough buffer
    PREP: Create a pipe
    PREP: Determine if pipe is a stream
    TEST: putmsg returns -1
    ERROR: putmsg returned 0
    28 FAIL

    TEST CASE: putpmsg
    TEST PURPOSE #29
    ERANGE in errno and return -1 on a call to int
    putpmsg(int fildes, const struct strbuf *ctlptr, const
    struct strbuf *dataptr, int band, int flags) when the
    size of the control part of the message is greater
    than the maximum configured size of the control part
    of a message.
    PREP: Read VSU_STREAMS_MAX_CONTROL_SIZE configuration
    PREP: Allocate big enough buffer
    PREP: Create a pipe
    PREP: Determine if pipe is a stream
    TEST: putpmsg returns -1
    ERROR: putpmsg returned 0
    29 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    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