|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1893 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 1893.
Report 1893 Actions
Problem Report Number 1893 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0954 Raised 2000-01-14 08:00 Updated 2003-03-13 08:00 Published 2000-01-19 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSX4 version 4.4.4 Test Identification POSIX.os/devclass/tcsendbrea 9-12 Linked Problem Reports PIN4.016, (in, old, system) Problem Summary TSD5.023 POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved POSIX.os/devclass/tcsendbrea/T.tcsend... Problem Text
POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed
POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved
POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved
POSIX.os/devclass/tcsendbrea/T.tcsendbrea 12 Unresolved
**************************************************************
Tests 9 through 12 fail and/or are unresolved when they are run as
members of the tcsendbrea testset. When run individually or as a
sequence 9-12 or even 7-12, without running any of the remaining
tests (ie: 1-6), they all pass successfully.
Explanation for the above is as follows:
a) the tcsendbrea testset begins by calling termios_prep() which
will make the parent process become a session leader, initializes
and open the terminal ports using file descriptors tty_fildes and
loop_fildes, and then makes tty_fildes the session leader's
controlling terminal.
b) tests 1-6 are child processes, they all call break_up() with
break_prep_mode set to USE_CTTY. break_up() creates a new session
leader using setsid(), reopen loop_fildes using opnctl(), thereby
establishing loop_fildes as a controlling terminal of the new
session. Tests 1-6 then verify various tcsendbreak assertions on
tty_fildes.
c) Test 9 also calls break_prep() but with break_prep_mode set to
USE_NON_CTTY. Break_prep() in this case does not reopen the
loopback port but assigns to loop_fildes its previous value saved
in loop_fildes_keep during termios_prep().
It is to be noted at this point that in our implementation, when a
process becomes a session leader and acquires a controlling
terminal, when the process exits, the file descriptors of the
controlling terminal are disassociated on a system wide basis.
Given the above behavior, the port associated with loop_fildes is
disconnected upon exit of test 6, and when test 9 later on tries
to send a break to loop_fildes using tcsendbreak(), the test fails
to perform the action since the file descriptor is no longer valid.
When test 9 is run individually, the testset is now reduced to
termios_prep() and test9(). tty_fildes and loop_fildes are valid
file descriptors after the termios_prep() call and test 9 executes
successfully.
The assertion for test 9, "when tcsendbreak() is called from a
foreground process, and when fildes refers to a non-controlling
terminal, the tcsendbreak actions shall be performed", is verified
when test 9 is run individually because the action is made on
loop_fildes which in this case is not being associated with a
controlling terminal.
d) tests 10, 11, and 12 begin by performing tcflush() on the
loop_fildes file descriptor. The three tests are getting
Unresolved because tcflush()is called on an invalid file descriptor
which port has being disconnected after test 6 given our system
wide behavior,and hence giving EIO errors as if modem disconnect.
When test #10 through #12 are run individually or even in the
sequence 9-12, they all run successfully.
From the above explanation it is apparant that the failures are
not due to a non-conforming tcsendbreak() API, but because of
the problem in test suite.
Test Output
/tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 9 Failed
Test Description:
If general terminal interface supported:
when tcsendbreak() is called from a foreground process, and when
fildes refers to a non-controlling terminal, the tcsendbreak
actions shall be performed.
Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X1(C)
Test Strategy:
OPEN and initialise terminal file and loop back file
SET time out for WAITTIME
SEND a break using tcsendbreak(loop_fildes, 0)
VERIFY that tcsendbreak() returned zero, or -1 and errno EINTR.
WAIT for a signal, using pause()
VERIFY that SIGINT signal was received
Test Information:
tcsendbreak(fd, 0) returned -1 and errno 5 (EIO)
expected return 0, or return -1 and errno 4 (EINTR)
tcsendbreak() action was not performed (SIGINT not received)
************************************************************************
/tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 10 Unresolved
Test Description:
If general terminal interface supported:
when tcsendbreak() is called from a background process, that is not
blocking or ignoring the SIGTTOU signal, and when fildes refers to
a non-controlling terminal, the tcsendbreak actions shall be
performed.
Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X2(C)
Test Information:
tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)
************************************************************************
/tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 11 Unresolved
Test Description:
If general terminal interface supported:
when tcsendbreak() is called from a background process, that is
blocking the SIGTTOU signal, and when fildes refers to a non-
controlling terminal, the tcsendbreak actions shall be performed.
Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X3(C)
Test Information:
tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)
************************************************************************
/tset/POSIX.os/devclass/tcsendbrea/T.tcsendbrea 12 Unresolved
Test Description:
If general terminal interface supported:
when tcsendbreak() is called from a background process, that is
ignoring the SIGTTOU signal, and when fildes refers to a non-
controlling terminal, the tcsendbreak actions shall be performed.
Posix Ref: Component TCSENDBREAK Assertion 7.2.2.2-X4(C)
Test Information:
tcflush() failed on VSX_TERMIOS_LOOP - errno 5 (EIO)
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This is accepted as a fault in the test suite.
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:
- View Report 1893
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority