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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0113 Actions


    Problem Report Number 0113
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0113
    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 CH09/stwmprprts 5
    Problem Summary TSD4.113 On a machine where sizeof(int) == sizeof(long), certain property definitions, (XWMHints for example) will happen to work properly, but will fail on other architectures where this is not the case. The ...
    Problem Text

    On a machine where sizeof(int) == sizeof(long), certain property
    definitions, (XWMHints for example) will happen to work properly, but
    will fail on other architectures where this is not the case.

    The sample implementation of Xlib recognizes that this is not a
    portable solution and so takes steps do the proper thing. The solution
    used by Xlib is to have two copies of the property structures, one that
    matches the needs of XGetWindowProperty()/XChangeProperty() and
    another that is for use by users of the library (and external
    representation so to speak). The external structure definition in the
    example case is XWMHints (defined in Xutil.h). The internal definition
    used by the sample inplementation for the same thing is xPropWMHints
    (defined in Xatomtype.h). The library copies to and from the protocol
    representation and the external representation as is needed.

    The following patch corrects this incorrect assumption in the test suite.

    (see also vsw_stwmhnts_T20.1 and vsw_stwmhnts_T20.1)

    *** ./xtest/tset/CH09/stwmprprts/stwmprprts.m Tue Aug 18 06:21:22 1992
    --- /usr/projects/x11/vsw_4.1.1/./xtest/tset/CH09/stwmprprts/stwmprprts.m
    Fri Aug 27 16:47:24 1993
    ***************
    *** 63,68 ****
    --- 63,88 ----
    #include "Xatom.h"
    static XSizeHints sizehints = { PAllHints,1,2,3,4,5,6,7,8,9,10, {11,12},
    {13,14}, 15, 16, 17};
    static XSizeHints sizehints_1 = { PAllHints,1,2,3,4,5,6,7,8,9,10, {11,12},
    {13,14}, 15, 16, 17};
    +
    + /* This typedef extracted from Xatomtype.h as this is the proper/portable
    *
    + * definition of what the raw property looks like
    */
    +
    + #define BOOL long
    + #define SIGNEDINT long
    + #define UNSIGNEDINT unsigned long
    + #define RESOURCEID unsigned long
    +
    + typedef struct {
    + UNSIGNEDINT flags;
    + BOOL input; /* need to convert */
    + SIGNEDINT initialState; /* need to cvt */
    + RESOURCEID iconPixmap;
    + RESOURCEID iconWindow;
    + SIGNEDINT iconX; /* need to cvt */
    + SIGNEDINT iconY; /* need to cvt */
    + RESOURCEID iconMask;
    + UNSIGNEDINT windowGroup;
    + } xPropWMHints;
    >>ASSERTION Good A
    When the
    .A window_name
    ***************
    *** 578,584 ****
    Window win;
    XVisualInfo *vp;
    XWMHints hints;
    ! XWMHints *hints_ret;
    unsigned long leftover, nitems;
    int actual_format;
    Atom actual_type;
    --- 598,604 ----
    Window win;
    XVisualInfo *vp;
    XWMHints hints;
    ! xPropWMHints *hints_ret;
    unsigned long leftover, nitems;
    int actual_format;
    Atom actual_type;
    ***************
    *** 646,690 ****
    } else
    CHECK;

    ! if(hints_ret->initial_state != IconicState) {
    report("The initial_state component of the XWMHints structure
    was %d instead of IconicState.",
    ! hints_ret->initial_state);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->icon_pixmap != 1L) {
    ! report("The icon_pixmap component of the XWMHints structure was
    %lu instead of 1.", hints_ret->icon_pixmap);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->icon_window != 1L) {
    ! report("The icon_window component of the XWMHints structure was
    %lu instead of 1.", hints_ret->icon_window);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->icon_x != 13) {
    ! report("The icon_x component of the XWMHints structure was %d
    instead of 13.", hints_ret->icon_x);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->icon_y != 7) {
    ! report("The icon_y component of the XWMHints structure was %d
    instead of 7.", hints_ret->icon_y);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->icon_mask != 1L) {
    ! report("The icon_mask component of the XWMHints structure was
    %lu instead of 1.", hints_ret->icon_mask);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->window_group != 1L) {
    ! report("The window_group component of the XWMHints structure was
    %lu instead of 1.", hints_ret->window_group);
    FAIL;
    } else
    CHECK;
    --- 666,710 ----
    } else
    CHECK;

    ! if(hints_ret->initialState != IconicState) {
    report("The initial_state component of the XWMHints structure
    was %d instead of IconicState.",
    ! hints_ret->initialState);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->iconPixmap != 1L) {
    ! report("The icon_pixmap component of the XWMHints structure was
    %lu instead of 1.", hints_ret->iconPixmap);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->iconWindow != 1L) {
    ! report("The icon_window component of the XWMHints structure was
    %lu instead of 1.", hints_ret->iconWindow);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->iconX != 13) {
    ! report("The icon_x component of the XWMHints structure was %d
    instead of 13.", hints_ret->iconX);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->iconY != 7) {
    ! report("The icon_y component of the XWMHints structure was %d
    instead of 7.", hints_ret->iconY);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->iconMask != 1L) {
    ! report("The icon_mask component of the XWMHints structure was
    %lu instead of 1.", hints_ret->iconMask);
    FAIL;
    } else
    CHECK;

    ! if(hints_ret->windowGroup != 1L) {
    ! report("The window_group component of the XWMHints structure was
    %lu instead of 1.", hints_ret->windowGroup);
    FAIL;
    } else
    CHECK;

    Test Output

    /tset/CH09/stwmprprts/Test 5 Failed

    Test Description:
    When the wm_hints argument is non-NULL, then a call to
    XSetWMProperties sets the WM_HINTS property for the window w
    to be of type WM_HINTS, format 32 and to have value set to
    the wm_hints argument.

    Test Strategy:
    Create a window with XCreateWindow.
    Set the WM_HINTS property for the window with XSetWMProperties.
    Verify type and format are XA_WM_HINTS and 32, respectively.
    Verify that the property value was correctly set with
    XGetWindowProperty.

    Test Information:
    --- Running test with visual class PseudoColor, depth 8
    The initial_state component of the XWMHints structure was 0 instead of
    IconicState.
    The icon_pixmap component of the XWMHints structure was 3 instead of 1.
    The icon_x component of the XWMHints structure was 1 instead of 13.
    The icon_y component of the XWMHints structure was 0 instead of 7.
    The icon_mask component of the XWMHints structure was 13 instead of 1.
    The window_group component of the XWMHints structure was 7 instead of 1.

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    This is agreed to be 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