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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1109 Actions


    Problem Report Number 1109
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0311
    Raised 1970-01-01 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.3
    Test Identification CAPIbase/sigaction 32
    Problem Summary PG4U.00162 This request questions the change made a result of TSD 227.
    Problem Text
    In TSD4U.00227 the consultants stated the following:

    " Our analysis of the failure indicates the problem is that the getpmsg code
    has a typo which renders it ineffective. Specifically:

    if ((result = getpmsg(fildes[0],&ctl,&data,&band,&flags)) == -1)
    break;

    is intended to break out of the loop once the message is received
    but is incorrectly coded and actually breaks out of the loop if
    the message is not present. The code should be:

    if ((result = getpmsg(fildes[0],&ctl,&data,&band,&flags)) != -1)
    break;

    We recommend a Test Suite Deficiency be granted for this problem."

    We disagree with this change. On page 346 of the XPG5 XSH it states the
    following:

    "RETURN VALUE

    Upon successful completion, getmsg() and getpmsg() return a non-negative
    value. A value of 0 indicates that a full message was read successfully.
    .
    .
    .
    Upon failure, getmsg() and getpmsg() return -1 and set errno to indicate
    the error."


    If the message is ready to be received on the first getpmsg() call, then
    a return value of zero will be received. This will break out of the for
    loop. No SIGPOLL will have been generated because the getpmsg() was
    successful. The loop needs to be executed until getpmsg() returns -1,
    this will generate the SIGPOLL.

    Test Output

    TEST PURPOSE #32
    After a call to int sigaction(int sig, const struct
    sigaction *act, struct sigaction *oact) with
    SA_SIGINFO set in the sa_flags member of the sigaction
    structure pointed to by act and sig equal to SIGPOLL,
    on entry to the signal catching function specified by
    the sa_sigaction member when output buffers are
    available the si_code member of the structure pointed
    to by the siginfo argument shall contain POLL_OUT and
    the si_band member shall contain the band event.
    PREP: Create a pipe
    PREP: Determine if pipe is a stream
    INFO: Pipes are not STREAMs on this implementation
    PREP: Open 2 spx drivers and create pipe
    PREP: Set up action for SIGPOLL
    PREP: Register for SIGPOLL
    PREP: Set O_NONBLOCK on read and write end of STREAM
    PREP: Generate SIGPOLL
    ERROR: SIGPOLL was not generated
    32 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    The SIGPOLL in this test is generated due to the availability of output
    buffers for sending data on the end of the STREAM where the message is
    placed by putpmsg(). The getpmsg() call(s) do not generate the signal,
    the purpose is just to ensure the message has transited completely so the
    signal is generated from the other end. As such we want to break from
    the loop when the message is received, i.e. the change to the test is correct.

    We also note that the component name given here is Internationalised System
    Calls and Libraries Extended V2 which is a UNIX98 component, however the
    submitter has modified VSU's STREAMs test code in capi_user/sreflect.c
    which is only allowed for UNIX95 branding. As such the results given
    here are not valid for branding and thus a TSD could not be granted for
    them in any event.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused. It really appears to be a support request.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority