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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0529 Actions


    Problem Report Number 0529
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0148
    Raised 2002-04-09 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.4.5
    Test Identification POSIX.os/ioprim/fcntl 6
    Problem Summary PG4R.149 Starting in OS/390 Release 10 an implementation specific flag, O_LARGEFILE, is set on by default when the file is created by open(). This flag is still on after the fcntl() calls in these testcases, a...
    Problem Text
    Starting in OS/390 Release 10 an implementation specific flag,
    O_LARGEFILE, is set on by default when the file is created by open().
    This flag is still on after the fcntl() calls in these testcases, and
    the testcases aren't expecting this flag to be on.

    From our fcntl.h:
    #define O_LARGEFILE 0x0400

    There is nothing in the spec that prevents an implementation from
    having additional implementation specific flags such as this.

    The testsuite should allow for this.
    Test Output
    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 6 Failed

    Test Description:
    A call to fcntl(fildes, F_SETFL, O_NONBLOCK) shall set the file status
    flag O_NONBLOCK for fildes.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-10(A)

    Test Strategy:
    OPEN file with (O_CREAT | O_RDWR)
    SET file status flags to O_NONBLOCK using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns (O_RDWR | O_NONBLOCK)
    CLOSE file and OPEN it again (O_RDWR | O_NONBLOCK | O_APPEND)
    SET file status flags to O_NONBLOCK using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns (O_RDWR | O_NONBLOCK)

    Test Information:
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02007, expected 07
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02007, expected 07

    ************************************************************************




    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 7 Failed

    Test Description:
    A call to fcntl(fildes, F_SETFL, O_APPEND) shall set the file status
    flag O_APPEND for fildes.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-11(A)

    Test Strategy:
    OPEN file with (O_CREAT | O_RDWR)
    SET file status flags to O_APPEND using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns (O_RDWR | O_APPEND)
    CLOSE file and OPEN it again (O_RDWR | O_NONBLOCK | O_APPEND)
    SET file status flags to O_APPEND using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns (O_RDWR | O_APPEND)

    Test Information:
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02013, expected 013
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02013, expected 013

    ************************************************************************




    ************************************************************************
    /tset/POSIX.os/ioprim/fcntl/T.fcntl 8 Failed

    Test Description:
    A call to fcntl(fildes, F_SETFL, O_APPEND|O_NONBLOCK) shall set the
    file status flags O_NONBLOCK and O_APPEND for fildes.
    A call to fcntl(fildes, F_SETFL, 0) shall clear the file status flags
    for fildes.
    Posix Ref: Component FCNTL Assertion 6.5.2.2-12(A)

    Test Strategy:
    OPEN file with (O_CREAT | O_RDWR)
    SET file status flags to (O_NONBLOCK | O_APPEND) using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns (O_RDWR | O_NONBLOCK | O_APPEND)
    CLOSE file and OPEN it again (O_RDWR | O_NONBLOCK | O_APPEND)
    SET file status flags to 0 using fcntl(F_SETFL)
    VERIFY fcntl(F_GETFL) returns O_RDWR

    Test Information:
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02017, expected 017
    fcntl(F_SETFL) did not set flags properly, fcntl(F_GETFL) returned
    02003, expected 03


    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    It is true that the specification does not prevent implementations from
    having additional file status flags. However, the description of open()
    says, `The file status flags and file access modes of the open file
    description will be set according to the value of oflag.'

    This seems to imply that only the file status flags passed in oflag
    can be set, in which case an implementation which returns additional
    flags from fcntl(F_GETFL) that were not set in the oflag argument to
    open() (or in an fcntl(F_SETFL) call) does not comply with the
    specification.

    While the wording `according to the value' is perhaps not as clear as
    it could be, it is difficult to see how any interpretation of those
    words which allowed additional implementation-specific flags to be set
    would not also allow additional standard flags (such as O_NONBLOCK)
    to be set. Clearly the latter would be very undesirable.

    Therefore I believe that the intention must be for the file status
    flags to be set to those passed in oflag, and only those, and this
    implementation does not comply with that requirement.

    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