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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0508 Actions


    Problem Report Number 0508
    Submitter's Classification Minor System Fault
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0127
    Raised 1996-03-27 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.3.4
    Test Identification ANSI.os/streamio/fopen 4, 5, 7, 8, 10, 11, 13, 14
    Problem Summary PG4R.128 We accept this is a fault on our product update but request we
    be granted a temporary waiver as our product release time scales are
    prohibitive and we believe the fault exposed to be minor in nature. ...
    Problem Text We accept this is a fault on our product update but request
    we be granted a temporary waiver as our product release
    time scales are prohibitive and we believe the fault exposed
    to be minor in nature. This fault will be corrected in the following
    release update.
    Test Output Test-Set Name: /tset/ANSI.os/streamio/fopen/T.fopen
    ---------------------------------------------------


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 4 Failed

    Test Description:
    type = "w" the file specified by file-name :
    a. is truncated for writing only, if it already exists;
    b. is created for writing only, if it does not exist.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE time stamps using savtimes()
    OPEN a stream using fopen() with "w"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY st_ctime and st_mtime have changed using chktimes()
    CLOSE stream using fclose()
    UNLINK file
    SAVE time stamps for parent directory using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "w" for which a file does not already
    exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY st_ctime and st_mtime have changed using chktimes()
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.4.2, "w") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 5 Failed


    Test Description:
    type = "a" the file specified by file-name :
    a. is opened for writing only, if it already exists;
    b. is created for writing only, if it does not exist.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    OPEN a stream using fopen() with "a"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the status flags do have O_APPEND set
    CLOSE stream using fclose()
    UNLINK file
    SAVE time stamps for parent directory using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "a" for which a file does not already
    exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY st_ctime and st_mtime have changed using chktimes()
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.5.2, "a") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 7 Failed

    Test Description:
    type = "w+" the file specified by file-name :
    a. is truncated for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE time stamps using savtimes()
    OPEN a stream using fopen() with "w+"
    OBTAIN file status flags using fcntl()
    OBTAIN the file size using stat()
    VERIFY that the status flags do not have O_RDONLY or O_WRONLY set
    VERIFY st_ctime and st_mtime have changed using chktimes()
    CLOSE stream using fclose()
    UNLINK file
    SAVE time stamps for parent directory using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "w+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_WRONLY set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY st_ctime and st_mtime have changed using chktimes()
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.7.2, "w+") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 8 Failed

    Test Description:
    type = "a+" the file specified by file-name :
    a. is opened for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    OPEN a stream using fopen() with "a+"
    OBTAIN file status flags using fcntl()
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that the status flags do not have O_RDONLY or O_WRONLY set
    CLOSE stream using fclose()
    UNLINK file
    SAVE time stamps for parent directory using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "a+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_WRONLY set
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY st_ctime and st_mtime have changed using chktimes()
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.8.2, "a+") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 10 Failed

    Test Description:
    When type = "wb", then the file specified by file-name :
    a. is truncated for writing only, if it already exists;
    b. is created for writing only, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    SAVE file timestamp using savtimes()
    CLOSE file using close()
    OPEN a stream using fopen() with "wb"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_WRONLY set.
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that file timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "wb" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_WRONLY set.
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.10,"wb") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 11 Failed

    Test Description:
    When type = "ab", then the file specified by file-name :
    a. is opened for writing only, if it already exists;
    b. is created for writing only, if it does not exist.
    This test is not executed in XPG3 mode.
    Test Strategy:

    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    OPEN a stream using fopen() with "ab"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_WRONLY set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has correct length by using stat() and checking
    the size field
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "ab" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_WRONLY set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has correct length by using stat() and checking
    the size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.11, "ab") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 13 Failed

    Test Description:
    When type = "w+b" or "wb+", then the file specified by file-name :
    a. is truncated for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    SAVE file timestamp using savtimes()
    CLOSE file using close()
    OPEN a stream using fopen() with "wb+"
    OBTAIN file status flags using fcntl()
    OBTAIN the file size using stat()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY file size is zero length.
    VERIFY that file timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "wb+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file
    CREATE file using creat()
    WRITE data to file using write()
    SAVE file timestamp using savtimes()
    CLOSE file using close()
    OPEN a stream using fopen() with "w+b"
    OBTAIN file status flags using fcntl()
    OBTAIN the file size using stat()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY file size is zero length.
    VERIFY that file timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "w+b" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.13, "wb+") - parent directory: time stamps incorrect:
    atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/fopen/T.fopen 14 Failed

    Test Description:
    When type = "a+b" or "ab+", then the file specified by file-name :
    a. is opened for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    OPEN a stream using fopen() with "ab+"
    OBTAIN file status flags using fcntl()
    VERIFY that the file has correct length by using stat() and checking
    the size field
    VERIFY that the status flags access mode only has O_RDWR set.
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "ab+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has correct length by using stat() and checking
    the size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    OPEN a stream using fopen() with "a+b"
    OBTAIN file status flags using fcntl()
    VERIFY that the file has correct length by using stat() and checking
    the size field
    VERIFY that the status flags access mode only has O_RDWR set.
    CLOSE stream using fclose()
    UNLINK file
    SAVE directory timestamp using savtimes()
    SAVE current time using time()
    OPEN a stream using fopen() with "a+b" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags access mode only has O_RDWR set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has correct length by using stat() and checking
    the size field
    VERIFY that directory timestamp has been updated using
    chktimes(NEWCTIME|NEWMTIME)
    VERIFY time stamps are not less than the current time using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    fopen(./fopen-t.14, "ab+") - parent directory: time stamps incorrect:
    atime was updated


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

    Test-Set Name: /tset/ANSI.os/streamio/freopen/T.freopen
    -------------------------------------------------------


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 5 Failed

    Test Description:
    type = "w" the file specified by file-name is associated with stream
    and :
    a. is truncated for writing only, if it already exists;
    b. is created for writing only, if it does not exist.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE time stamps using savtimes() - (genlib)
    REOPEN a stream using freopen() with "w"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    CLOSE stream using fclose()
    VERIFY that st_ctime and st_mtime have been updated using chktimes()
    UNLINK file
    OBTAIN time using time()
    SAVE time stamps using savtimes() - (genlib) for the directory
    REOPEN a stream using freopen() with "w" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    freopen(./freopen-t.5a, "w") (new file) - time stamps incorrect: atime
    was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 6 Failed

    Test Description:
    type = "a" the file specified by file-name is associated with stream
    and :
    a. is opened for writing only, if it already exists;
    b. is created for writing only, if it does not exist.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    REOPEN a stream using freopen() with "a"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file had the expected size by using stat() and
    checking the size field
    CLOSE stream using fclose()
    UNLINK file
    OBTAIN time using time()
    SAVE time stamps using savtimes() - (genlib) for the directory
    OPEN a stream using fopen() with "a" for which a file does not already
    exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do not have O_RDONLY or O_RDWR set
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time CLOSE streams using fclose()
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    UNLINK files

    Test Information:
    freopen(./freopen-t.6a, "a") (new file) - parent directory: time stamps
    incorrect: atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 8 Failed
    Test Description:
    type = "w+" the file specified by file-name is associated with stream
    and :
    a. is truncated for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE time stamps using savtimes() - (genlib)
    REOPEN a stream using freopen() with "w+"
    OBTAIN file status flags using fcntl()
    OBTAIN the file size using stat()
    VERIFY that the status flags do not have O_RDWR set
    VERIFY that the file has the expected length using stat() and checking
    the size field
    CLOSE stream using fclose()
    VERIFY that st_ctime and st_mtime have been updated using chktimes()
    UNLINK file
    OBTAIN time using time()
    SAVE time stamps using savtimes() - (genlib) for the directory
    REOPEN a stream using freopen() with "w+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do have O_RDWR set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    CLOSE streams using fclose()
    UNLINK files

    Test Information:
    freopen(./freopen-t.8a, "w+") (new file) - time stamps incorrect: atime
    was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 13 Failed

    Test Description:
    When type = "wb", then the file specified by file-name is associated
    with stream and :
    a. is truncated for writing only, if it already exists;
    b. is created for writing only, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE file timestamps using savtimes().
    REOPEN a stream using freopen() with "wb"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flag access mode only has O_WRONLY set.
    VERIFY that the file has zero length by using stat() and checking the
    size
    VERIFY that file timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    CLOSE stream using fclose()
    UNLINK file
    OBTAIN time using time()
    SAVE directory timestamps using savtimes().
    REOPEN a stream using freopen() with "wb" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flag access mode only has O_WRONLY set.
    VERIFY that directory timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    CLOSE stream using fclose()
    UNLINK file

    Test Information:
    freopen(./freopen.13a, "wb") (new file) - parent directory: time stamps
    incorrect: atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 14 Failed

    Test Description:
    When type = "ab", then the file specified by file-name is associated
    with stream and :
    a. is opened for writing only, if it already exists;
    b. is created for writing only, if it does not exist.
    This test is not executed in XPG3 mode.
    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    REOPEN a stream using freopen() with "ab"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flag access mode only has O_WRONLY set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file had the expected size by using stat() and
    checking the size field
    CLOSE stream using fclose()
    UNLINK file
    OBTAIN time using time()
    SAVE directory timestamps using savtimes().
    OPEN a stream using fopen() with "ab" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flag access mode only has O_WRONLY set.
    VERIFY that the status flags do have O_APPEND set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    CLOSE streams using fclose()
    UNLINK files

    Test Information:
    freopen(./freopen.14a, "ab") (new file) - parent directory: time stamps
    incorrect: atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 16 Failed

    Test Description:
    When type = "w+b" or "wb+", then the file specified by file-name is
    associated with stream and :
    a. is truncated for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    SAVE file timestamps using savtimes().
    REOPEN a stream using freopen() with "wb+"
    OBTAIN file status flags using fcntl()
    OBTAIN the file size using stat()
    VERIFY that the status flag access mode only has O_RDWR set.
    VERIFY that the file has zero length using stat() and checking the
    size field
    VERIFY that file timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    CLOSE stream using fclose()
    UNLINK file
    OBTAIN time using time()
    SAVE directory timestamps using savtimes().
    REOPEN a stream using freopen() with "wb+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flag access mode only has O_RDWR set.
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    CLOSE streams using fclose()
    UNLINK files
    REPEAT above strategy using "w+b" argument to freopen().

    Test Information:
    freopen(./freopen.16a, "wb+") (new file) - parent directory: time
    stamps incorrect: atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 17 Failed

    Test Description:
    When type = "a+b" or "ab+", then the file specified by file-name is
    associated with stream and :
    a. is opened for reading and writing, if it already exists;
    b. is created for reading and writing, if it does not exist.
    This test is not executed in XPG3 mode.

    Test Strategy:
    OPEN stream using fopen() with "a+"
    CREATE file using creat()
    WRITE data to file using write()
    CLOSE file using close()
    REOPEN a stream using freopen() with "ab+"
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do have O_RDWR and O_APPEND set
    VERIFY that the file has expected length by using stat() and checking
    the size field
    CLOSE stream using fclose()
    UNLINK file
    OBTAIN time using time()
    SAVE directory timestamps using savtimes().
    REOPEN a stream using freopen() with "ab+" for which a file does not
    already exist
    OBTAIN file status flags using fcntl()
    VERIFY that the status flags do have O_RDWR and O_APPEND set
    VERIFY that the file has zero length by using stat() and checking the
    size field
    VERIFY that directory timestamps have been updated using
    chktimes(NEWCTIME|NEWMTIME).
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    CLOSE streams using fclose()
    UNLINK files
    REPEAT above strategy using "a+b" argument to freopen().

    Test Information:
    freopen(./freopen.17a, "ab+") (new file) - parent directory: time
    stamps incorrect: atime was updated

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


    ************************************************************************
    /tset/ANSI.os/streamio/freopen/T.freopen 25 Failed

    Test Description:
    EROFS in errno and NULL returned by freopen() if the file specified by
    file-name resides on a read-only file system and type is any one of
    the values "w", "a", "r+", "w+" or "a+".
    (See PARAMETERS : VSX_ROFS below)
    Posix Ref: Component FREOPEN Assertion 8.2.3.11-21(A)

    Test Strategy:
    CREATE directory using crdir()
    CREATE child process
    OBTAIN the name of the readonly file system VSX_ROFS using vgetenv()
    - (vlib)
    EXECUTE new program using as parameters : name of readonly file
    system, directory name and file name
    SUBPROGRAM:
    CREATE file on readonly file system and mount it readonly using
    setuprofs() - (tsetlib)
    FOR each access mode "r", "w", "a", "r+", "w+" and "a+":
    SAVE time stamps using savtimes()
    OPEN stream using fopen()
    REOPEN stream using freopen() with current access mode using the
    file on the readonly file system
    VERIFY that a NULL pointer is returned and errno is set to EROFS
    VERIFY that file was not truncated using stat()
    VERIFY that time stamps were not changed using chktimes()
    SAVE time stamps using savtimes()
    OPEN stream using fopen()
    REOPEN stream using freopen() with current access mode using a
    non-existent file on the readonly file system
    VERIFY that a NULL pointer is returned and errno is set to EROFS
    VERIFY that file was not created using eaccess()
    VERIFY that time stamps were not changed using chktimes()
    UNMOUNT readonly file system and remove data file using
    clnuprofs() - (tsetlib)
    Test Information:
    freopen(a) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(w+) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(a+) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(wb) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(ab) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(w+b) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(wb+) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(a+b) on error EROFS changed time stamps
    time stamps incorrect: atime was updated
    freopen(ab+) on error EROFS changed time stamps
    time stamps incorrect: atime was updated

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


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

    Test-Set Name: /tset/POSIX.os/files/creat/T.creat
    -------------------------------------------------


    ************************************************************************
    /tset/POSIX.os/files/creat/T.creat 13 Failed

    Test Description:
    When the file did not previously exist, a successful call to creat()
    shall mark for update the st_atime, st_ctime and st_mtime fields on
    the created file, and the st_ctime and st_mtime fields on the parent
    directory.
    Posix Ref: Component CREAT Assertion 5.3.2.2-41(A)

    Test Strategy:
    DETERMINE whether the value of NGROUPS_MAX using sysconf() with
    _SC_NGROUPS_MAX
    OBTAIN time using time()
    SAVE times stamps using savtimes() - (genlib) for the directory
    CREATE file using creat()
    VERIFY that creat() returned successfully and errno was not set
    CLOSE file descriptor using close()
    OBTAIN file status information using stat() for the file
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    UNLINK file

    Test Information:
    parent directory time stamps incorrect: atime was updated

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


    ************************************************************************
    /tset/POSIX.os/files/creat/T.creat 21 Failed

    Test Description:
    EISDIR in errno and a return value of -1 on a call to creat(path,
    mode) when the named file is a directory, The time related elements
    st_ctime and st_mtime fields of the file and parent directory and the
    st_atime field of the file are not marked for update.
    Posix Ref: Component CREAT Assertion 5.3.2.4-47(A)

    Test Strategy:
    DETERMINE whether the value of NGROUPS_MAX using sysconf() with
    _SC_NGROUPS_MAX
    CREATE directory using crdir()
    SAVE status information for parent directory using stat()
    SAVE times stamps using savtimes() - (genlib)
    CREATE file using creat() with directory just created
    VERIFY that creat() returned -1 and errno was set to EISDIR
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    VERIFY that st_ctime and st_mtine have not been updated for the parent
    directory
    REMOVE directory using rmdir()

    Test Information:
    file time stamps incorrect: atime was updated

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


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

    Test-Set Name: /tset/POSIX.os/files/mkdir/T.mkdir
    -------------------------------------------------


    ************************************************************************
    /tset/POSIX.os/files/mkdir/T.mkdir 7 Failed

    Test Description:
    A call to mkdir() marks for update the st_atime, st_ctime, and
    st_mtime fields of the new directory and the st_ctime and st_mtime
    fields of the parent directory.
    Posix Ref: Component MKDIR Assertion 5.4.1.2-29(A)

    Test Strategy:
    OBTAIN current time using time()
    IF directory already exists (eaccess()) then remove() it
    CREATE directory using mkdir()
    VERIFY that mkdir() returned 0 and errno was not set
    VERIFY that the new file is a directory using S_ISDIR(st_mode)
    OBTAIN time stamps for parent directory using savtime()
    OBTAIN file status information using stat() for the child directory
    VERIFY that st_atime, st_ctime and st_mtime has been updated for the
    child directory
    VERIFY that st_ctime and st_mtime has been modified for the parent
    directory using chktimes()
    UNLINK file and link using unlink()

    Test Information:
    parent directory time stamps incorrect: atime was updated

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


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

    Test-Set Name: /tset/POSIX.os/files/mkfifo/T.mkfifo
    ---------------------------------------------------


    ************************************************************************
    /tset/POSIX.os/files/mkfifo/T.mkfifo 6 Failed

    Test Description:
    A call to mkfifo() marks for update the st_atime, st_mtime, and
    st_ctime fields of the FIFO file created, and the st_mtimem and
    st_ctime fields of the FIFO file's parent directory.
    Posix Ref: Component MKFIFO Assertion 5.4.2.2-28(A)

    Test Strategy:
    OBTAIN current time using time()
    IF FIFO already exists (eaccess()) then remove() it
    CREATE FIFO using mkfifo()
    VERIFY that mkfifo() returned 0 and errno was not set
    VERIFY that the new file is a FIFO using S_ISFIFO(st_mode)
    OBTAIN time stamps for parent directory using savtime()
    OBTAIN file status information using stat() for the child directory
    VERIFY that st_atime, st_ctime and st_mtime has been updated for the
    FIFO
    VERIFY that st_ctime and st_mtime has been modified for the parent
    directory using chktimes()
    UNLINK FIFO using unlink()

    Test Information:
    parent directory time stamps incorrect: atime was updated

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

    Test-Set Name: /tset/POSIX.os/files/open/T.open
    -----------------------------------------------


    ************************************************************************
    /tset/POSIX.os/files/open/T.open 18 Failed

    Test Description:
    When O_CREAT is set and the file did not previously exist, a
    successful call to open() shall mark for update the st_atime, st_ctime
    and st_mtime fields on the created file, and the st_ctime and st_mtime
    fields on the parent directory.
    Posix Ref: Component OPEN Assertion 5.3.1.2-52(A)

    Test Strategy:
    DETERMINE the value of NGROUPS_MAX using sysconf() with
    _SC_NGROUPS_MAX
    OBTAIN time using time()
    SAVE times stamps using savtimes() - (genlib) for the directory
    OPEN file using open() with O_RDWR|O_CREAT
    VERIFY that open() returned successfully and errno was not set
    CLOSE file descriptor using close()
    OBTAIN file status information using stat() for the file
    VERIFY that st_atime, st_ctime, st_mtime are all greater than saved
    time
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    UNLINK file

    Test Information:
    parent directory time stamps incorrect: atime was updated

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


    ************************************************************************
    /tset/POSIX.os/files/open/T.open 34 Failed

    Test Description:
    EISDIR in errno and a return value of -1 on a call to open(path,
    oflag) when the named file is a directory and oflag is O_WRONLY. The
    time related elements st_ctime and st_mtime fields of the file and
    parent directory and the st_atime field of the file are not marked for
    update.
    Posix Ref: Component OPEN Assertion 5.3.1.4-61(A)

    Test Strategy:
    DETERMINE the value of NGROUPS_MAX using sysconf() with
    _SC_NGROUPS_MAX
    CREATE directory using crdir()
    SAVE status information for parent directory using stat()
    SAVE times stamps using savtimes() - (genlib)
    OPEN file using open() with O_WRONLY using directory just created
    VERIFY that open() returned -1 and errno was set to EISDIR
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    VERIFY that st_atime has not been updated for the parent directory
    REMOVE directory using rmdir()

    Test Information:
    file time stamps incorrect: atime was updated

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


    ************************************************************************
    /tset/POSIX.os/files/open/T.open 35 Failed

    Test Description:
    EISDIR in errno and a return value of -1 on a call to open(path,
    oflag) when the named file is a directory and oflag is O_RDWR. The
    time related elements st_ctime and st_mtime fields of the file and
    parent directory and the st_atime field of the file are not marked for
    update.
    Posix Ref: Component OPEN Assertion 5.3.1.4-61(A)

    Test Strategy:
    DETERMINE the value of NGROUPS_MAX using sysconf() with
    _SC_NGROUPS_MAX
    CREATE directory using crdir()
    SAVE status information for parent directory using stat()
    SAVE times stamps using savtimes() - (genlib)
    OPEN file using open() with O_RDWR using directory just created
    VERIFY that open() returned -1 and errno was set to EISDIR
    VERIFY that st_ctime and st_mtime have been updated for the directory
    using chktimes()
    VERIFY that st_atime has not been updated for the parent directory
    REMOVE directory using rmdir()

    Test Information:
    file time stamps incorrect: atime was updated

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response It is recommended that the request is refused on the grounds stated
    above.

    The number of tests failing because of the failure to correctly update
    the
    time stamps is significant and the inability of user to rely on the
    correct
    setting of the time stamps is considered to be a serious fault in the
    implementation.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion It is recommended that this request be refused .

    The behaviour in question, the correct update of the time fields has
    been
    an X/Open testing requirement for some time (based on the IEEE 2003.1
    Test
    assertions). Incorrect behaviour by the implementation in this area
    would have an unacceptable impact on applications, in that
    unexpected file attributes are being updated - in the most extreme case
    (freopen.25) the implementation indicates that the access time on a
    read-only file system was updated.

    Please also note that the test suite version indicated on this
    interpretation
    application ( VSX4.3.4) expired on December 6th
    and is no longer acceptable for interpretation requests.

    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