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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0297 Actions


    Problem Report Number 0297
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Permanent Interpretation (PIN)
    Problem Resolution ID PIN.X.0013
    Raised 1993-10-14 08:00
    Updated 2003-03-13 08:00
    Published 1993-11-19 08:00
    Product Standard X Window System Applications Interface
    Certification Program The Open Brand certification program
    Test Suite VSW version 4.1.1
    Test Identification CH08/sndevnt 19
    Specification Xlib - C Language Binding
    Location in Spec See Problem Text
    Problem Summary PIN4.013 We have identified two 64-bit portability problems in this test. First, a 64-bit '-1' does not equal a 32-bit '-1'. Secondly, the size of 5 longs on a 64-bit platform is 40, not 20. Given these fa...
    Problem Text
    We have identified two 64-bit portability problems in this test.

    First, a 64-bit '-1' does not equal a 32-bit '-1'. Secondly, the
    size of 5 longs on a 64-bit platform is 40, not 20.

    Given these facts we believe that the test is at fault. The
    following source changes may be used to correct these portability
    problems.

    *** ./xtest/tset/CH08/sndevnt/sndevnt.m Tue Aug 18 06:21:02 1992
    --- /usr/projects/x11/vsw_4.1.1/./xtest/tset/CH08/sndevnt/sndevnt.m Fri Aug
    27 16:44:43 1993
    ***************
    *** 18,24 ****
    Status
    XSendEvent(display, w, propagate, event_mask, event_send)
    Display *display = Dsp;
    ! Window w = (Window) -1;
    Bool propagate = False;
    long event_mask = NoEventMask;
    XEvent *event_send = &_event;
    --- 18,24 ----
    Status
    XSendEvent(display, w, propagate, event_mask, event_send)
    Display *display = Dsp;
    ! Window w = (CARD32) ((Window) -1 );
    Bool propagate = False;
    long event_mask = NoEventMask;
    XEvent *event_send = &_event;
    ***************
    *** 25,30 ****
    --- 25,32 ----
    >>SET startup focusstartup
    >>SET cleanup focuscleanup
    >>EXTERN
    + #include <X11/Xmd.h>
    +
    /*
    * Can not use "xcall" because it empties the event queue.
    */
    ***************
    *** 33,38 ****
    --- 35,43 ----
    ((XAnyEvent *) event_send)->send_event = False;\
    rvalue = XSendEvent(display, w, propagate, event_mask,
    event_send);\
    _endcall(display)
    +
    + #define expectedsize 5*(sizeof(long))
    +
    static XEvent _event;

    static int event_types[] = {
    ***************
    *** 1813,1819 ****
    event_send->xany.display = (Display *) NULL;

    /* Set window member of event to -1. */
    ! event_send->xany.window = (Window) -1;

    /* Discard all events in the event queue. */
    XSync(display, True);
    --- 1818,1824 ----
    event_send->xany.display = (Display *) NULL;

    /* Set window member of event to -1. */
    ! event_send->xany.window = (CARD32) ( (Window) -1 );

    /* Discard all events in the event queue. */
    XSync(display, True);
    ***************
    *** 1879,1888 ****
    CHECK;

    /* Verify that window was set to 0. */
    ! if (event->window != (Window) -1 &&
    event->type != MappingNotify &&
    event->type != KeymapNotify) {
    ! report("%s: window set to 0x%x, expected 0x%x", en,
    event->window, (Window) -1);
    FAIL;
    }
    else
    --- 1884,1893 ----
    CHECK;

    /* Verify that window was set to 0. */
    ! if (event->window != (CARD32) ( (Window) -1 ) &&
    event->type != MappingNotify &&
    event->type != KeymapNotify) {
    ! report("%s: window set to 0x%lx, expected 0x%lx", en,
    event->window, (CARD32) ((Window) -1) );
    FAIL;
    }
    else
    ***************
    *** 2027,2034 ****
    /* Set type to ClientMessage. */
    event->type = ClientMessage;
    /* Verify that the size of the l member of the data union is 20 bytes. */
    ! if (sizeof(event->data.l) != 20) {
    ! report("Size %d, expected %d", sizeof(event->data.l), 20);
    FAIL;
    }
    else
    --- 2032,2039 ----
    /* Set type to ClientMessage. */
    event->type = ClientMessage;
    /* Verify that the size of the l member of the data union is 20 bytes. */
    ! if (sizeof(event->data.l) != expectedsize) {
    ! report("Size %d, expected %d", sizeof(event->data.l),
    expectedsize);
    FAIL;
    }
    else

    Test Output

    /tset/CH08/sndevnt/Test 19 Failed

    Test Description:
    The l member of the data union is an array of 5 longs.

    Test Strategy:
    Set type to ClientMessage.
    Verify that the size of the l member of the data union is 20 bytes.

    Test Information:
    Size 40, expected 20

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    The failure of test 19 seems to be caused by an ambiguity in the specification.
    In the specification of the MessageEvent Structure the data union is specified
    as a union of 20 bytes, 10 shorts and 5 longs. Elsewhere in the specification
    the term 5 32-bit values is used. It seems clear from this that the
    specification intended that the union contain 5 32-bit values
    .sp
    The failure could be classified as a permanent interpretation.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Permanent Interpretation (PIN)
    Review Conclusion
    A Permanent Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority