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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1254 Actions


    Problem Report Number 1254
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0456
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.0.2
    Test Identification Base/getcontext 1
    Problem Summary PG4U.00009 The test may fail because getcontext sets the uc_link member to 0.
    Problem Text
    Test 1 expects the uc_link field to be set to something other
    than 0 just by doing a getcontext(). The spec does not say
    that uc_link is set to something by just calling getcontext().
    The uc_link field is to be set by the user to the next context
    to be run after this context is finished. If no next context has
    been set up, it cannot be expected that uc_link would be set to
    other than 0. In the discription for setcontext the spec says:

    "If the uc_link member of the ucontext_t structure pointed to by
    ucp argument is equal to 0, then this context is the main context,
    and the process will exit when this context returns."

    This implies that 0 is a valid value for uc_link.
    Test Output
    TEST CASE: getcontext

    TEST PURPOSE #1
    A successful call to int getcontext(ucontext_t *ucp)
    shall place a pointer to the context that will be
    resumed when the current context returns into the
    uc_link member of the ucontext_t pointed to by ucp and
    return 0.
    TEST: getcontext returns 0
    TEST: Base context put into uc_link
    PREP: Handle SIGALRM signals
    PREP: Handle SIGUSR1 signals
    PREP: Handle SIGUSR2 signals
    PREP: Start interrupt chain reaction
    TEST: getcontext in SIGALRM handler returned 0
    TEST: getcontext in SIGALRM set uc_link
    ERROR: Base context was set in uc_link
    TEST: getcontext in SIGUSR1 handler returned 0
    TEST: getcontext in SIGUSR1 set uc_link
    ERROR: Base context was set in uc_link
    TEST: getcontext in SIGUSR2 handler returned 0
    TEST: getcontext in SIGUSR2 set uc_link
    ERROR: Base context was set in uc_link
    CLEANUP: Reset signal handlers
    1 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    The getcontext spec states

    The getcontext() function initialises the structure pointed to by
    ucp to the current user context of the calling process. ...

    The getcontext calls in the test are made within signal handlers.
    The spec states that

    when a signal handler is executed, the current user context is
    saved and a new context is created

    The new contexts created for signal handlers are not the main
    context. Therefore they may not have uc_link == 0.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority