|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2516 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 2516.
Report 2516 Actions
Problem Report Number 2516 Submitter's Classification Specification problem State Resolved Resolution Permanent Interpretation (PIN) Problem Resolution ID PIN.X.0277 Raised 2006-06-12 16:24 Updated 2006-06-16 21:44 Published 2006-06-16 21:44 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) 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 Base Definitions Issue 6 Location in Spec See Problem Text Linked Problem Reports 0295 Problem Summary 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 SA Review Start Date 2006-06-12 16:24 Last Updated 2006-06-15 00:23 Completed 2006-06-15 00:23 Status Complete Review Resolution Permanent Interpretation (PIN) Review Conclusion The PR is an agreed Permanent Interpretation.
Problem Reporting System Options:
- View Report 2516
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority