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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1065 Actions


    Problem Report Number 1065
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0302
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSRT version 5.0.1
    Test Identification rt.os/aio/lio_listio 38, 42
    Problem Summary PG4R.00002 This request contends the logic and arguments used by these tests are not correct.
    Problem Text

    This is the test description:

    On a call to lio_listio() when list[n]->aio_lio_opcode
    is LIO_READ and list[n]->aio_reqprio
    is not a valid value the return status of the asyn-
    chronous operation shall be set to -1 and its error
    status shall be set to EINVAL.

    The test is executing an lio_listio() call with valid arguments. One of the
    operations attempted by a specified aiocb control block generates an error, and
    the test expects the error to be reported by lio_listio() rather than stored
    by the aiocb block.


    XSH5, p.465 specifies:

    EINVAL The mode argument is an improper value, or
    the value of nent is greater than
    AIO_LISTIO_MAX.

    Neither of these conditions obtain in the test case.

    Further, from the same page:

    ..., the return value only indicates the success or failure of
    the lio_listio() call itself, not the status of the individual I/O
    requests.

    The results demanded by the test suite are contrary to the standard.
    Test Output


    400|33 38 1 20:02:57|IC Start
    200|33 38 20:02:57|TP Start
    520|33 38 00009285 1 1|> test with file
    520|33 38 00009293 1 1|lio_listio succeeded
    520|33 38 00009293 1 2|Error status for read is 0 (NO ERROR), expected EINVAL
    520|33 38 00009293 1 3|aio_return returned 0 for read, expected -1
    520|33 38 00009285 2 1|> test with pipe
    520|33 38 00009285 2 2|testing not supported on pipes
    520|33 38 00009285 2 3|> test with pty
    520|33 38 00009285 2 4|pty testing not configured
    520|33 38 00009285 2 5|> test with tty
    520|33 38 00009285 2 6|tty testing not configured
    220|33 38 1 20:02:57|FAIL
    410|33 38 1 20:02:57|IC End

    400|33 42 1 22:49:47|IC Start
    200|33 42 22:49:47|TP Start
    520|33 42 00005125 1 1|> test with file
    520|33 42 00005136 1 1|lio_listio succeeded
    520|33 42 00005136 1 2|Error status for write is 0 (NO ERROR), expected EI
    NVAL
    520|33 42 00005136 1 3|aio_return returned 1 for write, expected -1
    520|33 42 00005125 2 1|> test with pipe
    520|33 42 00005125 2 2|testing not supported on pipes
    520|33 42 00005125 2 3|> test with pty
    520|33 42 00005125 2 4|pty testing not configured
    520|33 42 00005125 2 5|> test with tty
    520|33 42 00005125 2 6|tty testing not configured
    220|33 42 1 22:49:48|FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    We believe these tests are correctly testing the specification.

    The comments above maintain

    The test is executing an lio_listio() call with valid arguments.
    One of the operations attempted by a specified aiocb control
    block generates an error, and the test expects the error to be
    reported by lio_listio() rather than stored by the aiocb block.

    The tests are calling lio_listio() with requests having aio_reqprio set to -1.
    Per the spec this is an invalid priority:

    The aio_reqprio member can be used to lower (but not raise) the
    asynchronous I/O operation priority and will be within the range
    zero through AIO_PRIO_DELTA_MAX, inclusive. The priority of an
    asynchronous request is computed as (process scheduling priority)
    minus aio_reqprio.

    The tests also expect lio_listio to fail and set errno to EIO to indicate
    the individual I/O operation failed. They then expect the failing
    operation to have its error value set to EINVAL in its aiocb. This
    is the behavior required by the spec.

    For lio_listio:

    [EIO] One or more of the individual I/O operations failed. The
    application may check the error status for each aiocb
    structure to determine the individual request(s) that failed.

    To determine the outcome of each I/O request, the application
    examines the error status associated with each aiocb control block.
    The error statuses so returned are identical to those returned as
    the result of an aio_read() or aio_write() function.

    For aio_read/aio_write:

    [EINVAL] The file offset value implied by aiocbp->aio_offset would
    be invalid, aiocbp->aio_reqprio is not a valid
    value, or aiocbp->aio_nbytes is an invalid value.

    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