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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1180 Actions


    Problem Report Number 1180
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0382
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    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/readv 22
    Problem Summary PG4U.00085 This IR claims that VSU_TERMIOS_TTY may be a pseudo-terminal.
    Problem Text
    Test cases: base/readv22, base/poll25

    The problem is in tty_prep() in the capi_com section of the VSU
    test functions. This function extracts the name of a tty
    from VSU_TERMIOS_TTY. The file for this on our system is
    a tty file not currently in use. This same VSU_TERMIOS_TTY file
    is used in other test cases as the slave side of the master-slave
    pty pair. (See tcgetsid() test cases 1 & 2, which succeed for us).
    We are getting an EPERM errno when the test case tries to open
    VSU_TERMIOS_TTY and this tty is a slave tty.
    Reading the section on unlockpt() I find the following:
    "Portable applications must call unlockpt() before opening the
    slave side of pseudo-terminal device." Is there somewhere in the
    standard that spells out the behavior of pseudo-terminal devices
    such that in one instance it is bound by master-slave protocols
    and in the next use it can act as an independent device?
    tty_prep() does not do a grantpt() followed by an unlockpt().
    It seems that the test case is opening a slave tty in a non-portable
    manner. There are (at least) two test cases that fail. Please note
    that poll25 fails for other reasons but also fails due to EPERM
    from the open of VSU_TERMIOS_TTY.
    Test Output
    TEST PURPOSE #22
    10|1433 /tset/CAPIbase/freadv/freadv22 00:57:40|TC Start, scenario ref 1
    15|1432 1.10 1|TCM Start
    400|1432 22 1 00:57:41|IC Start
    200|1432 1 00:57:41|TP Start
    520|1432 1 65208337 1 1|SPEC1170TESTSUITE CASE 22
    520|1432 1 65208337 1 2|A call to ssize_t readv(int fildes, const struct iovec
    520|1432 1 65208337 1 3|*iov, int iovcnt) when the function is interrupt
    520|1432 1 65208337 1 4|a signal after it has successfully read some dat
    520|1432 1 65208337 1 5|shall return the number of bytes read.
    520|1432 1 448397323 1 1|PREP: Read IOV_MAX system configuration
    520|1432 1 448397323 1 2|PREP: Allocate and initialize I/O buffers
    520|1432 1 103153680 1 1|PREP: Open and initialize the terminal files
    520|1432 1 103153680 1 2|ERROR: tty_prep: open call failed, errno = 139(EPERM
    520|1432 1 103153680 1 3|ERROR: Termios_prep failed
    520|1432 1 448397323 2 1|CLEANUP: Free iovec buffers
    220|1432 1 2 00:57:41|UNRESOLVED
    410|1432 22 1 00:57:41|IC End
    80|1433 0 00:57:41|TC End
    ------------------------------------------------------------------------
    10|1231 /tset/CAPIbase/fpoll/fpoll25 00:51:23|TC Start, scenario ref 111
    15|1230 1.10 1|TCM Start
    400|1230 25 1 00:51:24|IC Start
    200|1230 1 00:51:24|TP Start
    520|1230 1 89980944 1 1|SPEC1170TESTSUITE CASE 25
    520|1230 1 89980944 1 2|If the implementation supports a communications
    520|1230 1 89980944 1 3|and a socket type:
    520|1230 1 89980944 1 4|A call to int poll(struct pollfd fds[], nfds_t n
    520|1230 1 89980944 1 5|int timeout) shall support regular files, termin
    520|1230 1 89980944 1 6|and pseudo-terminal devices, STREAMS-based files
    520|1230 1 89980944 1 7|sockets, FIFOS and pipes.
    520|1230 1 433586187 1 1|TEST: AF_INET SOCK_STREAM
    520|1230 1 433586187 1 2|PREP: Create test sockaddr_in: address = 198.15
    520|1230 1 433586187 2 1|PREP: Wait for server to be ready
    520|1230 1 433586187 2 2|PREP: Create a socket
    520|1230 1 433586187 2 3|PREP: Connect socket to address 198.151.241.50,
    520|1230 1 433586187 2 4|PREP: Send test data
    520|1230 1 433586187 2 5|TEST: poll AF_INET socket for POLLIN
    520|1230 1 433586187 2 6|CLEANUP: Close socket, kill server
    520|1230 1 433586187 2 7|TEST: AF_UNIX SOCK_STREAM
    520|1230 1 433586187 2 8|PREP: Create test sockaddr_un: path = ../tmp/un
    520|1230 1 62455825 1 1|PREP: Server: create socket
    520|1230 1 62455825 1 2|PREP: Server: bind address 198.151.241.50, port
    520|1230 1 62455825 1 3|PREP: Server: listen on socket
    520|1230 1 62455825 1 4|PREP: Server: notify client server is ready
    520|1230 1 62455825 1 5|PREP: Server: accept connection
    520|1230 1 62455825 1 6|INFO: Server: accepted connection from address 1
    520|1230 1 62455825 1 7|PREP: echo_server: read and echo data
    520|1230 1 62455825 1 8|INFO: echo_server: echoed 11 bytes of data (ABC1
    520|1230 1 62455825 1 9|INFO: echo_server: recv returned -1, errno = 112
    520|1230 1 62455825 1 10|INFO: Server received signal 15
    520|1230 1 62455825 1 11|INFO: Server terminated
    520|1230 1 433586187 3 1|PREP: Wait for server to be ready
    520|1230 1 433586187 4 2|PREP: Create a socket
    520|1230 1 433586187 4 3|PREP: Connect socket to address 198.151.241.50,
    520|1230 1 433586187 4 4|PREP: Send test data
    520|1230 1 433586187 4 5|TEST: poll AF_INET socket for POLLIN
    520|1230 1 433586187 4 6|CLEANUP: Close socket, kill server
    520|1230 1 433586187 4 7|TEST: AF_UNIX SOCK_DGRAM
    520|1230 1 433586187 4 8|PREP: Create test sockaddr_un: path = ../tmp/un
    520|1230 1 62586897 1 1|PREP: Server: create socket
    520|1230 1 62586897 1 2|PREP: Server: bind address 198.151.241.50, port
    520|1230 1 62586897 1 3|PREP: Server: notify client server is ready
    520|1230 1 62586897 1 4|PREP: Server: read and echo data
    520|1230 1 62586897 1 5|INFO: Server: echoed 11 bytes of data (ABC123TES
    520|1230 1 62586897 1 6|INFO: Server received signal 15
    520|1230 1 62586897 1 7|INFO: Server terminated
    520|1230 1 433586187 5 1|PREP: Wait for server to be ready
    520|1230 1 433586187 5 2|PREP: Create a socket
    520|1230 1 433586187 5 3|PREP: Connect to address ../tmp/unix.dheBxQ
    520|1230 1 433586187 5 4|PREP: Send test data
    520|1230 1 433586187 5 5|TEST: poll AF_UNIX socket for POLLIN
    520|1230 1 433586187 5 6|ERROR: poll returned 0 (call timed out)
    520|1230 1 433586187 5 7|PREP: Create pipe
    520|1230 1 433586187 5 8|PREP: Write data to one end of pipe
    520|1230 1 433586187 5 9|TEST: poll other end of pipe for POLLIN
    520|1230 1 433586187 5 10|CLEANUP: Close pipe
    520|1230 1 433586187 5 11|PREP: Create fifo
    520|1230 1 433586187 5 12|PREP: Write data to one end of FIFO
    520|1230 1 433586187 5 13|TEST: poll other end of FIFO for POLLIN
    520|1230 1 433586187 5 14|CLEANUP: Remove fifo
    520|1230 1 433586187 5 15|PREP: Open tty (VSU_TERMIOS_TTY)
    520|1230 1 433586187 5 16|ERROR: open failed, errno = 139(EPERM - Not ow
    520|1230 1 433586187 5 17|PREP: Open pseudo ttys
    520|1230 1 433586187 5 18|PREP: Write data to one end of pseudo-tty
    520|1230 1 433586187 5 19|TEST: poll pseudo-tty for POLLIN
    520|1230 1 433586187 5 20|CLEANUP: Close pseudo terminal
    520|1230 1 433586187 5 21|PREP: Obtain file descriptor for regular file
    520|1230 1 433586187 5 22|TEST: Regular file polls TRUE for reading
    520|1230 1 433586187 5 23|CLEANUP: Close file
    520|1230 1 433586187 5 24|PREP: Create a streams
    520|1230 1 433586187 5 25|PREP: Create a pipe
    520|1230 1 433586187 5 26|PREP: Determine if pipe is a stream
    520|1230 1 433586187 5 27|INFO: Pipes are not STREAMs on this implementa
    520|1230 1 433586187 5 28|PREP: Open master pseudo tty
    520|1230 1 433586187 5 29|PREP: Determine if pseudo tty is a stream
    520|1230 1 433586187 5 30|ERROR: Neither pipes nor pseudo terminals are
    520|1230 1 433586187 5 31| based on this implementation. The samp
    520|1230 1 433586187 5 32| in $TET_ROOT/CAPI/SRC/LIB/capi_user/sre
    520|1230 1 433586187 5 33| must be modified to provide routines wi
    520|1230 1 433586187 5 34| equivalent functionality and interfaces
    520|1230 1 433586187 5 35| implementation.
    520|1230 1 62652433 1 1|PREP: Server: create socket
    520|1230 1 62652433 1 2|PREP: Server: bind address ../tmp/unix.dheBxQ to
    520|1230 1 62652433 1 3|PREP: Server: notify client server is ready
    520|1230 1 62652433 1 4|PREP: Server: read and echo data
    520|1230 1 62652433 1 5|INFO: Server: echoed 11 bytes of data (ABC123TES
    520|1230 1 62652433 1 6|INFO: Server received signal 15
    520|1230 1 62652433 1 7|INFO: Server terminated
    220|1230 1 1 00:51:37|FAIL
    410|1230 25 1 00:51:37|IC End
    80|1231 0 00:51:37|TC End

    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.

    Our opinion differs.

    We believe the test is correct.

    Section 5.1.4 Terminal Devices, in the Users' Guide describes the
    requirements for VSU_TERMIOS_LOOP and VSU_TERMIOS_TTY. In all cases,
    VSU_TERMIOS_TTY and VSU_TERMIOS_LOOP are required to be physical
    ports, not pseudo-terminals.

    The use of pseudo-terminals in section 5.1.4 refers to their usage in
    the Curses and XCurses tests, and whether or not a loop-back terminal
    cable is necessary or not.

    In any case, while a loop-back cable is not required and data transfer
    is not required, the terminal ports must still retain the proper
    behavior for a termios-based tty.

    The Appendix B description of VSU_TERMIOS_TTY states:

    The user running the test suite must have read and write
    permission for this device.

    In this case, the EPERM error implies the user does not have the
    proper permissions to access the physical device.

    The IR description above also describes the use of VSU_TERMIOS_TTY as
    the slave side of the master-slave pty pair referring to tcgetsid tp1,
    tp2. The tcgetsid tp1, tp2 tests properly use VSU_MASTER_PTY in those
    cases. There was an error in Appendix B of the Users' Guide that
    improperly referred to tcgetsid tp1, tp2 in the VSU_TERMIOS_TTY
    section. The tcgetsid tests should have been listed in the
    VSU_MASTER_PTY section.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    After further discussion with the consultant we understand
    that this is a test suite configuration issue rather than
    a conformance issue. Thus there is insufficient grounds
    to grant an interpretation from the information provided
    and the request is therefore refused.

    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