Hi,
"aio_read/8-1" and "aio_write/6-1" tests failed in my environments
(RHEL5.5-x86, RHEL4.8-x86_64/ia64):
------------<RHEL5.5 - x86>
conformance/interfaces/aio_read/8-1: execution: FAILED: Output:
aio_read/8-1.c aio_read() should fail!
[...]
conformance/interfaces/aio_write/6-1: execution: FAILED: Output:
aio_write/6-1.c aio_write should fail!
------------
I tried "aio_read/8-1" manually:
------------
[r...@rhel55-ltp-x86 aio_read]# ./8-1.run-test
aio_return: 0
aio_read(errno): 0
aio_read(strerror): Success
aio_read/8-1.c aio_read() should fail!
------------
This test expects that "aio_read()" with "aio_buf = NULL" fails:
------------<aio_read/8-1.c>
* - fill in an aiocb with a NULL aio_buf
* - call aio_read
* - check aio_read return value
*/
[...]
int main()
{
struct aiocb aiocb;
if (sysconf(_SC_ASYNCHRONOUS_IO) != 200112L)
return PTS_UNSUPPORTED;
/* submit a request with a NULL buffer */
aiocb.aio_fildes = 0;
aiocb.aio_buf = NULL;
aiocb.aio_nbytes = 0;
aiocb.aio_offset = 0;
if (aio_read(&aiocb) != -1)
{
printf(TNAME " aio_read() should fail!\n");
exit(PTS_FAIL);
}
------------
But "aio_read()" succeeded.
The manual says:
------------
[r...@rhel55-ltp-x86 aio_read]# man aio_read
AIO_READ(3) Linux Programmer's Manual
AIO_READ(3)
NAME
aio_read - asynchronous read
SYNOPSIS
#include <aio.h>
int aio_read(struct aiocb *aiocbp);
[...]
RETURN VALUE
On success, 0 is returned. On error the request is not enqueued,
-1 is
returned, and errno is set appropriately. If an error is first
detected
later, it will be reported via aio_return(3) (returns status -1)
and
aio_error(3) (error status whatever one would have gotten in errno,
such
as EBADF).
ERRORS
EAGAIN Out of resources.
EBADF aio_fildes is not a valid file descriptor open for reading.
EINVAL One or more of aio_offset, aio_reqprio, aio_nbytes are
invalid.
ENOSYS This function is not supported.
EOVERFLOW
The file is a regular file, we start reading before
end-of-file and
want at least one byte, but the starting position is past the
maxi-
mum offset for this file.
NOTES
It is a good idea to zero out the control block before use. This
control
block must not be changed while the read operation is in progress.
The
buffer area being read into must not be accessed during the
operation or
undefined results may occur. The memory areas involved must remain
valid.
------------
Manual says that "aio_read()" fails when aio_offset, aio_reqprio,
aio_nbytes, aio_fildes are invalid.
But the manual doesn't say about "aio_buf".
"aio_write/6-1"is same situation as "aio_read/8-1".
What meaning do these tests have?
Does "aio_read()" fail in the systems except Linux?
If so, may I judge the possibility of this tests by judging
the environment is Linux or not?
Please give me some opinion.
Regards--
-Tomonori Mitani
------------------------------------------------------------------------------
What happens now with your Lotus Notes apps - do you make another costly
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list