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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0181 Actions


    Problem Report Number 0181
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0181
    Raised 1994-08-08 08:00
    Updated 2003-03-13 08:00
    Published 1994-08-15 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/streamio/fwrite 3
    Problem Summary TSD4.181 This problem has been reported to the test suite developers and recognised as a test suite deficiency for VSX4.3.4, the error reference is err.4.3.4.011. The problem is that this test makes assumption...
    Problem Text
    This problem has been reported to the test suite developers
    and recognised as a test suite deficiency for VSX4.3.4, the error
    reference is err.4.3.4.011.

    The problem is that this test makes assumptions about the maximum size of an
    atomic write() to a pipe and its capacity --- and we 've made implementation
    changes in both these areas which are in line with the POSIX definition -
    POSIX does not prohibit writes of greater than PIPE_BUF bytes from being
    atomic - it just says that PIPE_BUF or less shall be atomic.

    Test Output
    ************************************************************************
    /tset/ANSI.os/streamio/fwrite/T.fwrite 3 Failed

    Test Description:
    When fwrite() writes greater than zero bytes but fewer than requested,
    then the error indicator for the stream is set.
    Posix Ref: Component FWRITE Assertion 8.2.3-05(A)

    IF file size limit is supported:
    CREATE synchronisation channel using opensync()
    CREATE child process
    CHILD:
    SET maximum file size (in 512 byte blocks) to be ULIMIT_BLKS or 4,
    whichever is greater
    IF (maximum file size in bytes) >= BUFSIZ
    CREATE new file using creat()
    WRITE some data to the file until the difference between the
    number of bytes written and the maximum file size is greater
    than zero but less than BUFSIZE.
    CLOSE the file using close()
    OPEN the stream using fopen() with "a"
    SET the stream buffer to be unbuffered using setbuf()
    WRITE more than BUFSIZ bytes to the stream using fwrite()
    VERIFY that fwrite() returns a value that is greater than zero and
    less than the number of bytes requested, and that ferror() shows
    that the stream error indicator is set
    CLOSE the stream using fclose()
    UNLINK the data file
    INFORM parent of test results using sendsync() - (genlib)
    PARENT:
    WAIT for child to complete processing using waitsync() - (genlib)
    REPORT on results from child as necessary
    OTHERWISE mark this subtest as NOT EXECUTED
    WHEN not testing XNFS:
    CREATE a pipe using pipe()
    SET O_NONBLOCK for write pipe file descriptor
    OBTAIN PIPE_BUF from fpathconf((write pipe file descriptor),
    _PC_PIPE_BUF)
    IF PIPE_BUF is of finite size:
    REOPEN the write side of the pipe as a stream using fdopen() with
    "w"
    SET the stream buffer to be unbuffered using setbuf()
    FILL the pipe with data using repeated write() calls
    READ PIPE_BUF bytes from the pipe.
    WRITE a more than a buffer full of data to the stream in a single
    fwrite() call
    VERIFY that fwrite() returns a value that is greater than zero and
    less than the number of bytes requested, and that ferror() shows
    that the stream error indicator is set; however, if fwrite() fails
    with errno set to EAGAIN, mark this subtest as NOT EXECUTED
    CLOSE the stream using fclose()
    OTHERWISE mark this subtest as NOT EXECUTED
    CLOSE both sides of the pipe using close()
    IF neither subtest can be executed, report test as UNTESTED

    Test Information:
    fwrite() failed to return expected value after fwrite() could only
    write a partial buffer to a non-blocking pipe
    expected (> 0 && < 16408), returned 16408
    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    This is accepted to be 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