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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1606 Actions


    Problem Report Number 1606
    Submitter's Classification Specification problem
    State Resolved
    Resolution Permanent Interpretation (PIN)
    Problem Resolution ID PIN.X.0163
    Raised 1996-05-09 08:00
    Updated 2003-03-13 08:00
    Published 1996-05-15 08:00
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification CAPI.os/ioprim/close 2 3 5 6
    Specification System Interfaces and Libraries Issue 4 Version 2
    Location in Spec See Problem Text
    Linked Problem Reports PIN4U.00028, (in, old, system)
    Problem Summary PIN4U.00029 This test may fail on implementations that do not implement STREAMS.
    Problem Text

    Assertions affected by this IR:
    close # 2, 3, 5, 6 (already cited above)
    ioctl # 1, 3, 5, 6, 9, 10, 12, 48, 49, 51, 115-118, 132, 141-143
    putmsg # 25
    putpmsg # 26
    write # 4
    writev # 35

    ======================================================================
    This test may fail on IUTs with no STREAMS devices.

    Per PIN4U.00028 no STREAM file descriptors need exist.

    The code in $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c is sample code
    which contains functions to:

    int stream_module_reflector(int fildes[2])
    - Setup two STREAMS devices in a "loopback" configuration
    opening both devices and returning file descriptors for them.
    The devices must accept pushing and popping of the modules
    identified in the "modules" array.

    void stream_module_cleanup(void)
    - Free resources used by stream_module_reflector().

    char *stream_module_name(smodule_t type)
    - Return the name of STREAMS modules which can be pushed/popped
    for the devices used by stream_module_reflector().

    int stream_module_count(void)
    - Return the number of modules defined for push/pop.

    We have not modified these routines because they could not be used.
    Based on PIN4U.00028 we do not provide STREAMS devices.

    Therefore we request that a permanent interpretation be granted
    for these assertions based on this interpretation since they would
    require that stream file descriptors be supported on our
    implementation in order to pass.

    Test Output
    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 2
    The last successful call to int close(int fildes) for
    fildes when fildes is associated with a STREAM shall
    dismantle the STREAM.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 3
    The last successful call to int close(int fildes) for
    fildes when fildes is associated with a STREAM,
    O_NONBLOCK is not set for fildes, and no signals are
    posted for the STREAM shall wait for each module and
    driver with data on it's write queue to drain its
    output before dismantling the STREAM.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 5
    The last successful call to int close(int fildes) for
    fildes when fildes is associated with a STREAM and
    signals are posted for the STREAM shall dismantle the
    STREAM immediately, even if data is on a module's or
    driver's write queue.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 6
    The last successful call to int close(int fildes) for
    fildes when fildes is associated with a STREAM and
    O_NONBLOCK is set for fildes shall dismantle the
    STREAM immediately, even if data is on a module or
    driver's write queue.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 1
    A successful call to int ioctl(int fildes, I_PUSH, int
    arg) when fildes refers to a STREAMS device shall push
    the module whose name is pointed to by arg onto the
    top of the current STREAM, call the open function of
    the newly-pushed module, and return a value other than -1.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End
    IC Start


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 3
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_PUSH, int arg) when fildes refers
    to a STREAMS device and arg points to an invalid
    module name.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 5
    ENXIO in errno and return -1 on a call to int
    ioctl(int fildes, I_PUSH, int arg) when a hangup is
    received on the STREAMS device referenced by fildes.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 6
    A successful call to int ioctl(int fildes, I_POP, int
    arg) when fildes refers to a STREAMS device and arg is
    0 shall remove the module just below the STREAM head
    and return a value other than -1.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End
    TP Start


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 9
    ENXIO in errno and return -1 on a call to int
    ioctl(int fildes, I_POP, 0) when a hangup is received
    on the STREAMS device referenced by fildes.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 10
    A successful call to int ioctl(int fildes, I_LOOK, int
    arg) when fildes refers to a STREAMS device shall
    retrieve the name of the module just below the STREAM
    head of the STREAM, place it in the character string
    buffer pointed to by arg, and return a value other
    than -1.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 12
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_LOOK, int arg) when fildes refers
    to a STREAMS device and no module is present on the
    STREAM.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 48
    A successful call to int ioctl(int fildes, I_FIND,
    char *arg) when fildes refers to a STREAMS device
    shall compare the names of all modules currently
    present in the STREAM to the name pointed to by arg
    and return 1 when the named module is present.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 49
    A successful call to int ioctl(int fildes, I_FIND,
    char *arg) when fildes refers to a STREAMS device
    shall compare the names of all modules currently
    present in the STREAM to the name pointed to by arg
    and return 0 when the named module is not present.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 51
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_FIND, char *arg) when fildes
    refers to a STREAMS device and arg does not contain a
    valid module name.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 115
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_STR, struct strioctl *arg) when
    fildes refers to a STREAMS device and the value of the
    ic_len member of the structure pointed to by arg is
    less than 0.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 116
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_STR, struct strioctl *arg) when
    fildes refers to a STREAMS device and the ic_len
    member of the structure pointed to by arg is larger
    than the maximum configured size of the data part of a
    message.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 117
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_STR, struct strioctl *arg) when
    fildes refers to a STREAMS device and the ic_timeout
    member of the structure pointed to by arg is less than
    -1
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 118
    ENXIO in errno and return -1 on a call to int
    ioctl(int fildes, I_STR, struct strioctl *arg) when a
    hangup is received on the STREAMS device referenced by
    fildes.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 132
    EINVAL in errno and return -1 on a call to int
    ioctl(int fildes, I_SENDFD, int arg) when fildes is
    not connected to a STREAMS-based pipe.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 141
    A successful call to int ioctl(int fildes, I_LIST,
    struct str_list *arg) when fildes refers to a STREAMS
    device and arg is a null pointer shall return the
    number of modules, including the driver, that are on
    the STREAM.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 142
    A successful call to int ioctl(int fildes, I_LIST,
    struct str_list *arg) when fildes refers to a STREAMS
    device and arg is not NULL shall place not more than
    the number of module names specified by the sl_nmods
    member of the structure pointed to by arg in the
    sl_modlist array in the structure, place the number of
    entries filled into the array in the sl_nmods member
    of the structure, and return 0.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 143
    A successful call to int ioctl(int fildes, I_LIST,
    struct str_list *arg) when fildes refers to a STREAMS
    device and arg is not NULL shall fill in the entries
    starting at the top of the STREAM and continuing down
    the stream until either the end of the STREAM is
    reached or the number of requested modules defined by
    the sl_mods member of the structure pointed to by arg
    is satisfied.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    SPEC1170TESTSUITE CASE 25
    ENXIO in errno and return -1 on a call to int
    putmsg(int fildes, const struct strbuf *ctlptr, const
    struct strbuf *dataptr, int flags) when a hangup
    condition is generated downstream for the specified
    STREAM.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 26
    ENXIO in errno and return -1 on a call to int
    putpmsg(int fildes, const struct strbuf *ctlptr, const
    struct strbuf *dataptr, int band, int flags) when a
    hangup condition is generated downstream for the
    STREAM specified by fildes.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 4
    A call to ssize_t write(int fildes, const void *buf,
    size_t nbyte) when fildes refers to a STREAMS device
    and nbyte is 0 shall send a zero length message and
    return 0.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End


    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 35
    A call to ssize_t writev(int fildes, const struct
    iovec *iov, int iovcnt) when fildes refers to a
    STREAMS device and the number of bytes requested is 0
    shall send a zero length message and return 0.
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Pseudo terminals are not STREAMS based on this
    implementation. The sample code in
    $TET_ROOT/CAPI/SRC/LIB/capi_user/smodule.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    UNRESOLVED
    IC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    A permanent interpretation is recommended.

    The UNRESOLVED results are consistent with an implementation
    not supporting STREAMs when stream_module_reflector() is called.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Permanent Interpretation (PIN)
    Review Conclusion
    A Permanent Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority