|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1309 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 1309.
Report 1309 Actions
Problem Report Number 1309 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0591 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1998-05-27 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSU version 5.0.2 Test Identification CAPIbase/sigaction 32 Problem Summary TSD4U.00227 This test may fail on systems which are slow to transmit STREAMS messages. Problem Text
This test failure is exposed on slower systems. The assertion is
failing at the point where the test code is calling putpmsg().
After the call to putpmsg(), the test needs to ensure that the
written data at the slave end has made it over the master end in
order to generate the SIGPOLL message when getmsg() is called. If
a sleep() is added after the call to putpmsg(), the test passes.Test Output
TEST CASE: sigaction
TEST PURPOSE #32
After a call to int sigaction(int sig, const struct
sigaction *act, struct sigaction *oact) with
SA_SIGINFO set in the sa_flags member of the sigaction
structure pointed to by act and sig equal to SIGPOLL,
on entry to the signal catching function specified by
the sa_sigaction member when output buffers are
available the si_code member of the structure pointed
to by the siginfo argument shall contain POLL_OUT and
the si_band member shall contain the band event.
PREP: Open master pseudo tty
PREP: Determine if pseudo tty is a stream
PREP: Open slave side of pseudo tty
PREP: Set up action for SIGPOLL
PREP: Register for SIGPOLL
PREP: Set O_NONBLOCK on read and write end of STREAM
PREP: Generate SIGPOLL
ERROR: SIGPOLL was not generated
TEST: si_code field correct
32 FAILReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
The submitter's analysis here is not correct:
1) The test is not failing at the point of the call to putpmsg(), it is
failing at the point it checks this call caused a signal to be generated,
following both the putpmsg() call and succeeding getpmsg() call.
2) This test is not predicated on the issue raised in TSD4U.00226. There,
messages need to get to the STREAM head at the other end of the STREAM pair
as a precondition for evaluating the test assertion. Here the test is
interested in a signal being generated when the the output queue on the
end where data is written becomes empty. Thus whether the data has
actually reached the other end is not relevant, all we care about is
that it has left the write queue on the side where it was written.
3) There is no benefit to a sleep being added to this test to ensure the
write queue empties before checking for the signal. The test already uses
getpmsg() to ensure the message has transited in order to effect this
(though as above message transit is not a necessary precondition it
is used as a better performing synchronization alternative than simply
sleeping). Thus adding a sleep would just make the test take longer to
execute.
Our analysis of the failure indicates the problem is that the getpmsg code
has a typo which renders it ineffective. Specifically:
if ((result = getpmsg(fildes[0],&ctl,&data,&band,&flags)) == -1)
break;
is intended to break out of the loop once the message is received
but is incorrectly coded and actually breaks out of the loop if
the message is not present. The code should be:
if ((result = getpmsg(fildes[0],&ctl,&data,&band,&flags)) != -1)
break;
We recommend a Test Suite Deficiency be granted for this problem.
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 1309
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority