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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1136 Actions


    Problem Report Number 1136
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0338
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.0.2
    Test Identification CAPIbase/lockf 43
    Problem Summary PG4U.00134 This request states that the test may fail because it does not use _PC_FILESIZEBITS to calculate MAXOFF_VAL.
    Problem Text
    This Interpretation Request is for the following tests:

    ftruncate 18
    lockf 42, 43, 44
    lstat 33
    mmap 41
    readv 70, 71, 72
    writev 75, 76, 77

    Currently our implementation is only failing lockf 43, however the
    other listed tests have the same problem. In file flockflfs.h the following
    is found:

    #define MAXOFF_VAL(x) pow((double)2, (double)((x*8)-1))-1

    This is used to calculate the largest offset value that can be used
    for a file. This is incorrect, XPG5 has a specific way to determine this
    value; page 1097 <limits.h> states:

    "FILESIZEBITS Minimum number of bits needed to represent, as a signed
    integer value, the maximum size of a regular file allowed in
    the specified directory.
    Minimum Acceptable Value: 32"

    The line above needs to be changed to something like the following and the
    appropriate lines fixed in t43smloff.c.

    #define MAXOFF_VAL pow((double)2, (double)(pathconf(".",_PC_FILESIZEBITS)-1))-1
    Test Output
    TEST CASE: lockf

    TEST PURPOSE #43
    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.
    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
    PREP: Obtain off_t size in XBS5_ILP64_OFF64 environment
    PREP: Obtain off_t size in XBS5_LPBIG_OFFBIG environment
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In test program: lseek() failed, errno = 22(Invalid argument)
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Connect child's pipe to stdout
    PREP: Execute a test program build in 64-bit off_t environment that:
    opens a file for writing,
    set the offset below that which can be represented in an off_t
    TEST: lockf returns -1 and sets errno to EOVERFLOW when offset
    of the last byte in request cannot be represented in an off_t object
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In test program: lseek() failed, errno = 22(Invalid argument)
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Connect child's pipe to stdout
    PREP: Execute a test program build in 64-bit off_t environment that:
    opens a file for writing,
    set the offset below that which can be represented in an off_t
    TEST: lockf returns -1 and sets errno to EOVERFLOW when offset
    of the last byte in request cannot be represented in an off_t object
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In test program: lseek() failed, errno = 22(Invalid argument)
    PREP: Open communication pipe for child
    PREP: Fork a child
    PREP: Connect child's pipe to stdout
    PREP: Execute a test program build in 64-bit off_t environment that:
    opens a file for writing,
    set the offset below that which can be represented in an off_t
    TEST: lockf returns -1 and sets errno to EOVERFLOW when offset
    of the last byte in request cannot be represented in an off_t object
    PREP: Wait for child
    INFO: Read child's test result
    ERROR: In test program: lseek() failed, errno = 22(Invalid argument)
    PREP: Connect child's pipe to stdout
    PREP: Execute a test program build in 64-bit off_t environment that:
    opens a file for writing,
    set the offset below that which can be represented in an off_t
    TEST: lockf returns -1 and sets errno to EOVERFLOW when offset
    of the last byte in request cannot be represented in an off_t object
    43 UNRESOLVED


    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 the test is correct as written. The submitter never provides
    any reason to the contrary, He simply presents an alternative method
    of programming the test.

    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