|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1539 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 1539.
Report 1539 Actions
Problem Report Number 1539 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0821 Raised 2000-08-11 08:00 Updated 2003-03-13 08:00 Published 2000-08-21 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSU version 5.1.1 Test Identification CAPI.os/ioprim/lockf 43 Problem Summary TSD4U.00282 lseek() fails during test setup because the offset is greater than the maximum file size Problem Text
This failure also exists in the same test in VSU 5.0.4.
The testcase attempts to lseek() using the following code:
#define MAXOFF_VAL(x) pow((double)2, (double)((x*8)-1))-1
offset = (off_t)MAXOFF_VAL(sizeof(off_t)) - OFF_TBELOW;
if ((ret = lseek(fd, offset, SEEK_SET)) == -1) {
The offset value is calculated off the size of off_t, which on our
implementation is 8 bytes. This gives an offset of around 2^63. However,
our max filesize for a LFS file is 64 GB (2^36). Thus lseek() returns the
EINVAL(errno 22) error above. There are no UNIX98 requirements for the
maximum LFS file size.
Note, that fixing this will also invalidate the method used for testing lockf()
EOVERFLOW errors. Since in IPL32_OFFBIG, off_t will have a max value of
2^63 and the file size limit can be alot less, using a size of 512 bytes
as the region to lock will not work.Test Output
************************************************************************
/tset/CAPI.os/files/lockf/T.lockf 43 Unresolved
Test Description:
Base Required Deviance
EOVERFLOW in errno and return -1 on a call to int lockf(int fildes,
int function, off_t size) when size is not 0 and the offset of the
last byte in the requested section cannot be represented correctly in
an object of type off_t.
Test Information:
PREP: Check for existence of programming environments
PREP: Obtain off_t size in XBS5_ILP32_OFF32 environment
PREP: Obtain off_t size in XBS5_ILP32_OFFBIG environment
INFO: Execution environment for XBS5_LP64_OFF64 not supported
INFO: Execution environment for XBS5_LPBIG_OFFBIG not supported
TEST: Execute test built in XBS5_ILP32_OFF32 (32-bit off_t) environment
that:
opens a file for writing,
set the offset below that which can be represented in an off_t
verifies lockf returns -1 and sets errno to EOVERFLOW when offset
of the last byte in request cannot be represented in an off_t
object
TEST: Execute test built in XBS5_ILP32_OFFBIG (64-bit off_t)
environment that:
opens a file for writing,
set the offset below that which can be represented in an off_t
verifies lockf returns -1 and sets errno to EOVERFLOW when offset
of the last byte in request cannot be represented in an off_t
object
ERROR: In test program: lseek() failed, errno = 22(Invalid argument)
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This is accepted as a fault in the test suite.
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 1539
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority