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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1786 Actions


    Problem Report Number 1786
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0863
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1999-03-10 08:00
    Product Standard Window System Application Interface V2
    Certification Program The Open Brand certification program
    Test Suite VSW version 5.0.2
    Test Identification XtC/XtPeekEvent 3
    Problem Summary TSD4W.00163 This test may fail on fast systems.
    Problem Text
    We believe this failure is due to a fault in the test suite, and
    request
    that a waiver be granted.

    The problem here is that the machine on which this test was run
    is too fast.
    I placed a

    printf("avs_set_event: val = %d\n", val);

    statement in "vsw5/src/libXtTest/event.c" just before the call to

    arg.val = val;
    s2 = semctl(semid, event, SETVAL, arg);

    and, on this machine, the value of "val" starts at "1" but gets
    all the way
    up to "32768" before it fails.

    avs_set_event: val = 1
    avs_set_event: val = 2
    avs_set_event: val = 3
    .
    .
    .
    avs_set_event: val = 32766
    avs_set_event: val = 32767
    avs_set_event: val = 32768
    avs_set_event: failed
    avs_set_event: val = 32768
    avs_set_event: failed
    avs_set_event: val = 32768
    avs_set_event: failed

    However, on a slower machine the test appears to finish before
    "val" gets
    a chance to become too large.

    avs_set_event: val = 1
    avs_set_event: val = 2
    avs_set_event: val = 3
    .
    .
    .
    avs_set_event: val = 5614
    avs_set_event: val = 1

    In this particular test the callback "XtIOP_Proc" is being called
    repeatedly
    to process any input from the designated input file. All that
    "XtIOP_Proc" does
    is increment a semaphore value each time it is called. This will
    go on until
    the timeout period has expired. Notice, however, that no check
    is made to see
    if the limit has been reached on the value of the semaphore.


    void XtIOP_Proc(client_data, source, id)
    XtPointer client_data;
    int *source;
    XtInputId *id;
    {
    avs_set_event(2,avs_get_event(2)+1); /* INCREMENT EACH
    TIME CALLED. */
    }


    void XtTMO4_Proc(client_data, id)
    XtPointer client_data;
    XtIntervalId *id;
    {
    .
    .
    .
    input_ret = XtAddInput(fileno(fid),
    (XtPointer)XtInputReadMask,
    XtIOP_Proc, (XtPointer)msg);
    .
    .
    .
    }

    static void t003(){
    .
    .
    .
    if ((pid2 = fork()) == 0)
    {
    tet_setcontext();;
    XtAddTimeOut(3000, XtTMO4_Proc, 0L);
    tet_infoline("PREP: Create windows for widgets and map
    them");
    XtRealizeWidget(topLevel);
    display = (((topLevel)->core.screen)->display);

    while (avs_get_event(1) == 0) {
    XtNextEvent(&loop_event);
    XSync(display, 0);
    XtDispatchEvent(&loop_event);
    }
    tet_infoline("TEST: XtPeekEvent returns 0 for alternate
    input");
    status = XtPeekEvent(&loop_event);
    if (status != 0) {
    sprintf(ebuf, "ERROR: XtPeekEvent returned %s,
    expected 0", status);
    tet_infoline(ebuf);
    tet_result(1);
    }
    exit(0);
    }

    tet_setblock();
    wait_for(pid2, 30-4);;
    exit(0);
    .
    .
    .
    }

    Therefore, on a fast machine "XtIOP_Proc" is called more
    frequently causing
    the semaphore to be incremented to its limit before the timeout
    period,
    which terminates the test, has expired.
    Test Output
    520|2551 3 32565 1 2|Assertion XtPeekEvent-3.(A)
    520|2551 3 32565 1 3|When a call to Boolean
    XtPeekEvent(event_return) blocks and
    520|2551 3 32565 1 4|input occurs for an alternate input source
    it shall return
    520|2551 3 32565 1 5|zero.
    520|2551 3 32573 1 1|PREP: Initialize toolkit, Open display and
    Create topLevel
    root widget
    520|2551 3 32572 1 1|PREP: Create windows for widgets and map
    them
    520|2551 3 32572 1 2|PREP: Get the file name to read contents
    520|2551 3 32572 1 3|PREP: Open file
    /usr/miller/vsw5/tet/vsw5/tset/XtC/tpeekevnt/data1 for read
    520|2551 3 32572 1 4|TEST: Register file as an input source
    520|2551 3 32572 1 5|ERROR: avs_set_event: semctl failed,
    errno = 34(ERANGE - Result too large)
    520|2551 3 32572 1 6|ERROR: avs_set_event: semctl failed,
    errno = 34(ERANGE - Result too large)
    520|2551 3 32572 1 7|ERROR: avs_set_event: semctl failed,
    errno = 34(ERANGE - Result too large)
    .
    .
    .
    520|2551 3 32572 1 7944|ERROR: avs_set_event: semctl failed,
    errno = 34(ERANGE - Result too large)
    520|2551 3 32572 1 7945|ERROR: avs_set_event: semctl failed,
    errno = 34(ERANGE - Result too large)
    520|2551 3 32572 1 7946|TEST: XtPeekEvent returns 0 for alternate
    input
    220|2551 3 2 23:51:00|UNRESOLVED

    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