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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1083 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 1083.


Report 1083 Actions


    Problem Report Number 1083
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0539
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-04-15 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSRT version 5.0.1
    Test Identification rt.os/timers/timer_getoverrun 1
    Problem Summary TSD4R.00001 This test may fail as it does not cause signal generation before checking for overrun count.
    Problem Text
    The timer_getoverrun() test case one makes incorrect assumptions
    that a signal has been accepted or delivered to the process being tested.

    Prior to the sleep(10) call the following has been setup:

    - the signal SIGRTMIN has been added to the set of signals to be accepted
    and masked to be blocked
    - the real time timer has been created for 2 second intervals until
    expiration.

    During the sleep(10) function the following happens:

    - 1st 2 second timer expires and the SIGRTMIN is generated and blocked.
    The SIGRTMIN is now in a pending state.
    - 2nd 2 second timer expires and the SIGRTMIN is generated. There already
    exists a pending SIGRTMIN so the system internal overrun count (not exported
    to the application program) is incremented.
    - For 3rd, 4th and 5th 2 second timers expirations is the same as the 3rd.
    The overrun count should be incremented to aleast four which is what the
    test case is attempting to verify.


    At this point the test case performs timer_getoverrun() call.
    Since no signals have been accepted or delivered, this produces undefined
    behavior.

    POSIX96 section 14.2.4.2, page 316, lines 271-275 states

    The value returned by timer_getoverrun() applies to the most recent
    expiration signal delivery or acceptance for the timer. If no
    expiration signal has been delivered or accepted for the timer,
    or if the RealTime Signals Extension is not supported, the meaning
    of the overrun count returned is undefined.

    The original SIGRTMIN signal which is pending has never been delivered
    or accepted by the process at the point that timer_getoverrun() is called
    and any count is undefined.

    The solution is to perform a sigwaitinfo(), before the timer_getoverrun() call
    which will accept the pending SIGRTMIN, and thus, transfer the value of system
    internal overrun count to userland overrun count and which will then be
    fetched by timer_getoverrun().
    Test Output
    10|0 /tset/rt.os/timers/timer_getoverrun/T.timer_getoverrun 10:54:20|TC Start,
    scenario ref 1-0 15|0 3.1-lite 4|TCM Start
    400|0 1 1 10:54:20|IC Start
    200|0 1 10:54:20|TP Start
    520|0 1 00003377 1 1|Expected at least 3 overruns, received 0
    220|0 1 1 10:54:30|FAIL
    410|0 1 1 10:54:30|IC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    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