|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0190 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 0190.
Report 0190 Actions
Problem Report Number 0190 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0190 Raised 1994-09-22 08:00 Updated 2003-03-13 08:00 Published 1994-09-28 08:00 Product Standard Internationalised System Calls and Libraries (XPG4) Certification Program The Open Brand certification program Test Suite VSX4 version 4.3.4 Test Identification POSIX.os/ioprim/write 18 Problem Summary TSD4.190 The VSX 4 /tset/Posix.os/ioprim/write/T.write test 18 test is flawed in its methodology. The corresponding text from Posix 1003.1-1990 (Section 6.4.2.2, page 120, section 4(b) reads: (b) A write reque... Problem Text
The VSX 4 /tset/Posix.os/ioprim/write/T.write test 18 test
is flawed in its methodology. The corresponding text from
Posix 1003.1-1990 (Section 6.4.2.2, page 120, section 4(b)
reads:
(b) A write request for {PIPE_BUF} or fewer bytes shall either:
[1] If there is sufficient space available in the pipe, transfer
all the data and return the number of bytes requested.
[2] If there is not sufficient space available in the pipe,
transfer no data and return -1 with errno set to [EAGAIN].
Under the definition for {PIPE_BUF} (page 36, Table 2-6, last
item:
{PIPE_BUF} Maximum number of bytes that can be written
atomically when writing to a pipe.
Posix 1003.1-1990 does not describe the underlying buffering
mechanism for a pipe, and only specifies the behavior of a single
write with respect to {PIPE_BUF}. This test *might* succeed
and validate that write() returns EAGAIN (if there is not sufficient
space in the pipe, which is not necessarily equivalent to PIPE_BUF)
if the total space available happens to exactly equal PIPE_BUF. If
not, the test is indeterminate.
In short, the VSX4 test is not sufficient to test the semantics of
O_NONBLOCK in the context of write and {PIPE_BUF}.Test Output
************************************************************************
/tset/POSIX.os/ioprim/write/T.write 18 Failed
Test Description:
For the XNFS specification:
Not in use.
For the XSH specification:
EAGAIN in errno and -1 returned by write() if the flag O_NONBLOCK
is set and nbytes is less than or equal to {PIPE_BUF} and there is
insufficient space in the pipe or FIFO.
Posix Ref: Component WRITE Assertion 6.4.2.4-26(A)
Test Strategy:
OBTAIN pipe_buf from pathconf(_PC_PIPE_BUF)
REPEAT for FIFO and pipe:
WRITE to FIFO/pipe until no more data can be transferred
SET O_NONBLOCK for write file descriptor
READ (pipe_buf - 1) bytes from FIFO/pipe
WRITE pipe_buf bytes to FIFO/pipe
VERIFY write() returns -1 and sets errno to EAGAIN
Test Information:
write(7, buf, 8192) failed
RETURN VALUES: expected: -1, observed: 8192
ERRNO VALUES: expected: 11 (EAGAIN), observed: 0 (NO ERROR)
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
It is accepted that this is a test suite problem and it is recommended
that a waiver is granted on the grounds of a test suite deficiency.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency
Problem Reporting System Options:
- View Report 0190
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority