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:
|