HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 0245 Details

Help 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:

     

    Back   


Contact the Certification Authority