|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0245 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 0245.
Report 0245 Actions
Problem Report Number 0245 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0245 Raised 1995-11-09 08:00 Updated 2003-03-13 08:00 Published 1995-12-20 08:00 Product Standard Internationalised System Calls and Libraries (XPG4) Certification Program The Open Brand certification program Test Suite VSX4 version 4.3.5 Test Identification ANSI.os/signal/signal_X 7 Problem Summary TSD4.245 This test failure is the result of a test code behavior under our strict and reinforced ANSI C compiler. /tset/ANSI.os/signal/signal_X/signal_X.c has the following declaration: private int t7sig_recvd... Problem Text
******************************************************************************
This test failure is the result of a test code behavior under our strict and
reinforced ANSI C compiler.
/tset/ANSI.os/signal/signal_X/signal_X.c has the following declaration:
private int t7sig_recvd;
private int t8sig_recvd;
then in the ch_t7() function, the following while loop declaration is made:
while (!t7sig_recvd)
;
and similarily in the ch_8() function, another while loop is declared as:
t8sig_recvd = 0;
.
.
while(!t8sig_recvd)
i++, j++;
In SRC/INC/std.h, private is defined as static.
The problem is that t7sig_recvd and t8sig_recvd should be declared volatile.
According to the ANSI standard which states:
In the abstract machine, all expressions are evaluated as specified
by the semantics. An actual implementation need not evaluate part
of an expression if it can deduce that its value is not used and
that no needed side effects are produced (including any caused by
calling a function or accessing a volatile object).
Since the code in the while loops do not modify the variables t7sig_recvd and
t8sig_recvd, or call any functions, the compiler is free not to re-evaluate
their value. To guarantee that the compiler evaluates these values each time
in the while loop, t7sig_recvd and t8sig_recvd should be declared as volatile.
Given our strict ANSI C compiler behavior, We believe this to be a test
suite defficiency.
******************************************************************************Test Output
**********************************************************************
/tset/ANSI.os/signal/signal_X/T.signal_X 7 Failed
Test Description:
the signal handling procedure func may terminate by executing a return
statement or by calling abort(), exit() or longjmp();
Test Strategy:
INITIALISE sig_array[] using vsx_sigs().
FOR all the tested signals
FOR each function: return, exit, abort, longjmp
CREATE child
IN CHILD: set up signal handler
IN PARENT: send signal to child process
IN CHILD: wait for signal to be received. Leave signal handler
with the tested function. Exit NOK if any error found.
IN PARENT: Verify the child process terminated as expected for
the given function.
REPORT if child process has timed out
Test Information:
SIGABRT : Child process did not receive signal or signal handler not
entered when testing return
SIGALRM : Child process did not receive signal or signal handler not
entered when testing return
SIGFPE : Child process did not receive signal or signal handler not
entered when testing return
SIGHUP : Child process did not receive signal or signal handler not
entered when testing return
SIGILL : Child process did not receive signal or signal handler not
entered when testing return
SIGINT : Child process did not receive signal or signal handler not
entered when testing return
SIGPIPE : Child process did not receive signal or signal handler not
entered when testing return
SIGQUIT : Child process did not receive signal or signal handler not
entered when testing return
SIGSEGV : Child process did not receive signal or signal handler not
entered when testing return
SIGTERM : Child process did not receive signal or signal handler not
entered when testing return
SIGUSR1 : Child process did not receive signal or signal handler not
entered when testing return
SIGUSR2 : Child process did not receive signal or signal handler not
entered when testing return
**********************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
It is agreed that this is a fault in the test suite and it is recommended that
a waiver is granted on the grounds of a Test Suite Deficiency.
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 0245
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority