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:
|