|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0295 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 0295.
Report 0295 Actions
Problem Report Number 0295 Submitter's Classification Specification problem State Resolved Resolution Permanent Interpretation (PIN) Problem Resolution ID PIN.X.0011 Raised 1993-10-22 08:00 Updated 2003-03-13 08:00 Published 1993-10-27 08:00 Product Standard Internationalised System Calls and Libraries (XPG4) Certification Program The Open Brand certification program Test Suite VSX4 version 4.2.4 Test Identification POSIX.os/devclass/tcflow 4, 5, 7, 8 Specification System Interfaces and Headers Issue 4 Location in Spec See Problem Text Linked Problem Reports PG3.611, (in, old, system) Problem Summary PIN4.011 Our system (SVR4 based) does not support locally connected asynchronous terminals. In order to run VSX tests, we use a pseudo-tty loopback to simulate the hardware terminal interface. The failures are... Problem Text
Our system (SVR4 based) does not support locally connected asynchronous
terminals. In order to run VSX tests, we use a pseudo-tty loopback to simulate
the hardware terminal interface.
The failures are caused by the limitation of pseudo-tty loopback, not
the defect in our system. So we request a waiver for above failures.
tcflow 4, tcflow 7
Each of these test cases transmit a STOP character to the terminal
device to stop the transmission of input from the terminal by executing
tcflow(..., TCIOFF). They then write to the terminal and read back what was
written from the other end (the loopback connection) to verify that output
to the terminal was not suspended. The test cases expect there to be a STOP
character in the data read.
These tests fail on SVR4-based systems due to the way tcflow is
implemented:
When the ioctl generated by tcflow() is processed by the kernel, the ioctl
is passed to the line discipline STREAMS module ldterm. Ldterm transforms the
ioctl into an M_STOPI ("stop input") control message that is passed to the
pseudo driver emulator STREAMS module ptem. Ptem sets a flag in an internal
structure that will cause input from the device to not be transmitted upstream.
No STOP character is actually written to the data stream. Because of this, no
STOP character will be present in the data read from the loopback connection.
tcflow 5, tcflow 8
These test cases transmit a START character to the terminal device
to start the transmission of input from the terminal by executing
tcflow(..., TCION). They then write to the terminal and read back what was
written from the other end (the loopback connection) to verify that output
to the terminal was not suspended. The test cases expect there to be a START
character in the data read.
These tests fail on SVR4-based systems due to the way tcflow is
implemented:
.br
When the ioctl generated by tcflow() is processed by the kernel, the ioctl is
passed to the line discipline STREAMS module ldterm. ldterm transforms the
ioctl into an M_STARTI ("start input") control message that is passed to the
pseudo driver emulator STREAMS module ptem. ptem sets a flag in an internal
structure that will cause input from the device to be transmitted upstream.
No START character is actually written to the data stream. Because of this,
no START character will be present in the data read from the loopback
connection.
Similar problems were encountered for which a waiver was granted. See Waiver PG3.611.Test Output
************************************************************************
/tset/POSIX.os/devclass/tcflow/T.tcflow 4 Failed
Test Description:
If general terminal interface supported:
When tcflow(fildes, TCIOFF) is called from a foreground process, it
shall cause the system to transmit a STOP character to the
terminal, and shall return zero.
Posix Ref: Component TCFLOW Assertion 7.2.2.2-07(C)
Test Strategy:
OPEN and initialise terminal file and loop back file
RESTART output of data to terminal file using tcflow() using TCOON
SET time out for WAITTIME
SEND stop character to terminal file using tcflow() using TCIOFF
VERIFY that tcflow() returned zero.
SET time out for WAITTIME
WRITE data to terminal file using write()
VERIFY that write returned the size of data written
SLEEP for a short interval to allow data to be available for reading
SET time out for WAITTIME
READ from loop back file using read()
VERIFY that read did not time out
VERIFY that read returned size of data written
VERIFY that terminal stop character was read
VERIFY that terminal start character was not read
Test Information:
STOP character was not sent
************************************************************************
************************************************************************
/tset/POSIX.os/devclass/tcflow/T.tcflow 5 Failed
Test Description:
If general terminal interface supported:
When tcflow(fildes, TCION) is called from a foreground process, it
shall cause the system to transmit a START character to the
terminal to restart suspended input, and shall return zero.
Posix Ref: Component TCFLOW Assertion 7.2.2.2-08(C)
Test Strategy:
OPEN and initialise terminal file and loop back file
RESTART output of data to terminal file using tcflow() using TCOON
SET time out for WAITTIME
SEND start character to terminal file using tcflow() using TCION
VERIFY that tcflow() returned zero.
SET time out for WAITTIME
WRITE data to terminal file using write()
VERIFY that write returned the size of data written
SLEEP for a short interval to allow data to be available for reading
SET time out for WAITTIME
READ from loop back file using read()
VERIFY that read did not time out
VERIFY that read returned size of data written
VERIFY that terminal start character was read
VERIFY that terminal stop character was not read
Test Information:
START character was not sent
************************************************************************
************************************************************************ /tset/POSIX.os/devclass/tcflow/T.tcflow 7 Failed
Test Description:
If general terminal interface supported:
If _POSIX_JOB_CONTROL is implemented, when tcflow() is called from
a background process, that is blocking the SIGTTOU signal, a
SIGTTOU signal shall not be sent to the process group associated
with the calling process and the tcflow() actions shall be
performed.
Posix Ref: Component TCFLOW Assertion 7.2.2.2-10(C)
Test Strategy:
OPEN and initialise terminal file and loop back file
For each action TCOON, TCOOFF, TCION, TCIOFF:
RESTART output of data to terminal file using tcflow() using TCOON
If action is TCOON:
SET time out for WAITTIME
SUSPEND output of data to terminal file using tcflow() using
TCOOFF
CREATE child process
CHILD process:
CREATE new background process group using setpgid(0, 0)
SET signal action for SIGTTOU to signal catching function
BLOCK signal SIGTTOU using sigprocmask()
CREATE process pair
CHILD process:
SET signal action for signal SIGTTOU to signal catching function
SLEEP for WAITTIME/2 (to receive signal, if any)
PARENT process:
CALL tcflow() for the current action
VERIFY that SIGTTOU signal was not received by child process
VERIFY that tcflow() returned zero.
SET time out for WAITTIME
WRITE data to terminal file using write()
IF action is TCOOFF and terminal output is not buffered
VERIFY write timed out
ELSE
VERIFY that write returned the size of data written
SLEEP for a short interval to allow data to be available for reading
SET time out for WAITTIME
READ from loop back file using read()
VERIFY that read did not time out
If action is TCOOFF:
VERIFY that read did not return any data
If action is TCOON:
VERIFY that read returned size of data written
If action is not TCIOFF:
VERIFY that terminal stop character was not read
If action is TCIOFF:
VERIFY that terminal stop character was read
If action is not TCION:
VERIFY that terminal start character was not read
If action is TCION:
VERIFY that terminal start character was read
Test Information:
tcflow(TCIOFF) action was not performed
tcflow(TCION) action was not performed
************************************************************************
************************************************************************
/tset/POSIX.os/devclass/tcflow/T.tcflow 8 Failed
Test Description:
If general terminal interface supported:
If _POSIX_JOB_CONTROL is implemented, when tcflow() is called from
a background process, that is ignoring the SIGTTOU signal, a
SIGTTOU signal shall not be sent to the process group associated
with the calling process and the tcflow() actions shall be
performed.
Posix Ref: Component TCFLOW Assertion 7.2.2.2-11(C)
Test Strategy:
OPEN and initialise terminal file and loop back file
For each action TCOON, TCOOFF, TCION, TCIOFF:
RESTART output of data to terminal file using tcflow() using TCOON
If action is TCOON:
SET time out for WAITTIME
SUSPEND output of data to terminal file using tcflow() using
TCOOFF
CREATE child process
CHILD process:
CREATE new background process group using setpgid(0, 0)
SET signal action for SIGTTOU to SIG_IGN
CREATE process pair
CHILD process:
SET signal action for signal SIGTTOU to signal catching function
SLEEP for WAITTIME/2 (to receive signal, if any)
PARENT process:
CALL tcflow() for the current action
VERIFY that SIGTTOU signal was not received by child process
VERIFY that tcflow() returned zero.
SET time out for WAITTIME
WRITE data to terminal file using write()
IF action is TCOOFF and terminal output is not buffered
VERIFY write timed out
ELSE
VERIFY that write returned the size of data written
SLEEP for a short interval to allow data to be available for reading
SET time out for WAITTIME
READ from loop back file using read()
VERIFY that read did not time out
If action is TCOOFF:
VERIFY that read did not return any data
If action is TCOON:
VERIFY that read returned size of data written
If action is not TCIOFF:
VERIFY that terminal stop character was not read
If action is TCIOFF:
VERIFY that terminal stop character was read
If action is not TCION:
VERIFY that terminal start character was not read
If action is TCION:
VERIFY that terminal start character was read
Test Information:
tcflow(TCIOFF) action was not performed
tcflow(TCION) action was not performed
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This is an agreed grey area and a permanent interpretation is recommended.
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:
- View Report 0295
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority