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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1395 Actions


    Problem Report Number 1395
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0677
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1996-07-31 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 base/poll 25
    Problem Summary TSD4U.00138 This test may fail on implementations because CL_BIND is not being passed to unix_client().
    Problem Text
    We are seeing the same behaviour on our implementation for
    poll#25 and select#2 as referenced in TSD4U.00062, however
    the journal for poll#25 is slightly different. For the
    AF_UNIX SOCK_DGRAM test:
    We see
    ERROR: poll returned 0 (call timed out)
    The journal in TSD4U.00062 contains
    ERROR: poll failed, errno = 4 (EINTR - Interrupted system call)

    However the cause is the same, the CL_BIND flag was not set
    when unix_client() is called.

    Our journal for select#2 is the same as contained in TSD4U.00062,
    I have included it here for completeness.

    Please note, the journal for poll#25 contains 2 unrelated errors
    for tty ERROR: open failed, errno = 139(EPERM - Not owner)
    and for STREAMS
    and the select#2 journal contains the same STREAMS failure.
    These are unrelated to and do not affect the behaviour covered
    in this IR.
    Test Output
    TEST CASE: poll

    TEST PURPOSE #25
    If the implementation supports a communications domain
    and a socket type:
    A call to int poll(struct pollfd fds[], nfds_t nfds,
    int timeout) shall support regular files, terminals
    and pseudo-terminal devices, STREAMS-based files,
    sockets, FIFOS and pipes.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 198.151.241.50, port = 2509
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 198.151.241.50, port 2509
    PREP: Send test data
    TEST: poll AF_INET socket for POLLIN
    CLEANUP: Close socket, kill server
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.cGFGxQ
    PREP: Server: create socket
    PREP: Server: bind address 198.151.241.50, port 2509 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 198.151.241.50, port 1026
    PREP: echo_server: read and echo data
    INFO: echo_server: echoed 11 bytes of data (ABC123TEST!)
    INFO: echo_server: recv returned -1, errno = 1121(ECONNRESET - Connection reset)
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect to address ../tmp/unix.cGFGxQ
    PREP: Send test data
    TEST: poll AF_UNIX socket for POLLIN
    CLEANUP: Close socket, kill server
    TEST: AF_INET SOCK_DGRAM
    PREP: Create test sockaddr_in: address = 198.151.241.50, port = 2510
    PREP: Server: create socket
    PREP: Server: bind address ../tmp/unix.cGFGxQ to socket
    PREP: Server: listen on socket
    PREP: Server: notify client ready to accept
    PREP: Server: accept connection
    INFO: Server: accepted connection from address H
    PREP: echo_server: read and echo data
    INFO: echo_server: echoed 11 bytes of data (ABC123TEST!)
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 198.151.241.50, port 2510
    PREP: Send test data
    TEST: poll AF_INET socket for POLLIN
    CLEANUP: Close socket, kill server
    TEST: AF_UNIX SOCK_DGRAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.fDBhxQ
    PREP: Server: create socket
    PREP: Server: bind address 198.151.241.50, port 2510 to socket
    PREP: Server: notify client server is ready
    PREP: Server: read and echo data
    INFO: Server: echoed 11 bytes of data (ABC123TEST!), peer is 198.151.241.50, port 1026
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect to address ../tmp/unix.fDBhxQ
    PREP: Send test data
    TEST: poll AF_UNIX socket for POLLIN
    ERROR: poll returned 0 (call timed out)
    PREP: Create pipe
    PREP: Write data to one end of pipe
    TEST: poll other end of pipe for POLLIN
    CLEANUP: Close pipe
    PREP: Create fifo
    PREP: Write data to one end of FIFO
    TEST: poll other end of FIFO for POLLIN
    CLEANUP: Remove fifo
    PREP: Open tty (VSU_TERMIOS_TTY)
    ERROR: open failed, errno = 139(EPERM - Not owner)
    PREP: Open pseudo ttys
    PREP: Write data to one end of pseudo-tty
    TEST: poll pseudo-tty for POLLIN
    CLEANUP: Close pseudo terminal
    PREP: Obtain file descriptor for regular file
    TEST: Regular file polls TRUE for reading
    CLEANUP: Close file
    PREP: Create a streams
    PREP: Create a pipe
    PREP: Determine if pipe is a stream
    INFO: Pipes are not STREAMs on this implementation
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Neither pipes nor pseudo terminals are STREAMS
    based on this implementation. The sample code
    in $TET_ROOT/CAPI/SRC/LIB/capi_user/sreflect.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    PREP: Server: create socket
    PREP: Server: bind address ../tmp/unix.fDBhxQ to socket
    PREP: Server: notify client server is ready
    PREP: Server: read and echo data
    INFO: Server: echoed 11 bytes of data (ABC123TEST!), peer is
    INFO: Server received signal 15
    INFO: Server terminated
    25 FAIL


    TEST CASE: select

    TEST PURPOSE #2
    A call to int select(int nfds, fd_set *readfds, fd_set
    *writefds, fd_set *exceptfds, const struct timeval
    *timeout) when readfds is not a null pointer shall
    check each regular file, terminal, pseudo-terminal
    device, STREAMS-based file, sockets, FIFOs and pipes
    file descriptor less than nfds specified by a bit set
    in the structure pointed to by readfds and set the
    corresponding bit in the structure pointed to by
    readfds when the file descriptor is ready to read.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 198.151.241.50, port = 64117
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 198.151.241.50, port 64117
    PREP: Write data into socket
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close socket, kill server
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.EfADxQ
    PREP: Server: create socket
    PREP: Server: bind address 198.151.241.50, port 64117 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 198.151.241.50, port 1042
    PREP: echo_server: read and echo data
    INFO: echo_server: echoed 10 bytes of data (write data)
    INFO: echo_server: recv returned -1, errno = 1121(ECONNRESET - Connection reset)
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect to address ../tmp/unix.EfADxQ
    PREP: Write data into socket
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close socket, kill server
    TEST: AF_INET SOCK_DGRAM
    PREP: Create test sockaddr_in: address = 198.151.241.50, port = 64118
    PREP: Server: create socket
    PREP: Server: bind address ../tmp/unix.EfADxQ to socket
    PREP: Server: listen on socket
    PREP: Server: notify client ready to accept
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 5
    PREP: echo_server: read and echo data
    INFO: echo_server: echoed 10 bytes of data (write data)
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 198.151.241.50, port 64118
    PREP: Write data into socket
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close socket, kill server
    TEST: AF_UNIX SOCK_DGRAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.cFfcxQ
    PREP: Server: create socket
    PREP: Server: bind address 198.151.241.50, port 64118 to socket
    PREP: Server: notify client server is ready
    PREP: Server: read and echo data
    INFO: Server: echoed 10 bytes of data (write data), peer is 198.151.241.50, port 1036
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect to address ../tmp/unix.cFfcxQ
    PREP: Write data into socket
    TEST: select checks readfds and sets appropriate bits
    ERROR: Descriptors are not set correctly:
    Expected descriptor 8 set
    Received descriptor 8 clear
    PREP: Create pipe
    PREP: Write data into pipe
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close pipe
    PREP: Create fifo
    PREP: Write data into fifo
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Remove fifo
    PREP: Open pseudo ttys
    PREP: Write data into pty
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close pseudo terminal
    PREP: Create file
    TEST: select checks readfds and sets appropriate bits
    CLEANUP: Close file
    PREP: Create a pipe
    PREP: Determine if pipe is a stream
    INFO: Pipes are not STREAMs on this implementation
    PREP: Open master pseudo tty
    PREP: Determine if pseudo tty is a stream
    ERROR: Neither pipes nor pseudo terminals are STREAMS
    based on this implementation. The sample code
    in $TET_ROOT/CAPI/SRC/LIB/capi_user/sreflect.c
    must be modified to provide routines with the
    equivalent functionality and interfaces for the
    implementation.
    PREP: Server: create socket
    PREP: Server: bind address ../tmp/unix.cFfcxQ to socket
    PREP: Server: notify client server is ready
    PREP: Server: read and echo data
    INFO: Server: echoed 10 bytes of data (write data), peer is
    2 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    Although this request would normally be refused as a duplicate of
    TSD4U.00062 the test logic changed between 4.0.2 and 4.1.0. The
    output in TSD4U.00062 is what would be expected when running
    4.0.2. The output here is expected when running 4.1.0. Since
    4.0.2 is no longer a valid indicator of compliance we suggest
    this be request approved and TSD4U.00062 no longer be allowed
    as a waiver for 4.1.0.

    Please note that our agreement for poll #25 is with regard
    to the error

    ERROR: poll returned 0 (call timed out)

    not the error

    ERROR: open failed, errno = 139(EPERM - Not owner)

    An additional waiver is required for this error.

    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:

     

    Back   


Contact the Certification Authority