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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1777 Actions


    Problem Report Number 1777
    Submitter's Classification Specification problem
    State Resolved
    Resolution Temporary Interpretation (TIN)
    Problem Resolution ID TIN.X.0076
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-04-15 08:00
    Product Standard Window System Application Interface V2
    Certification Program The Open Brand certification program
    Test Suite VSW version 5.0.0
    Test Identification Xt8/XtMakeResizeRequest 9
    Specification Window Management (X11R5): X Toolkit Intrinsics
    Location in Spec See Problem Text
    Problem Summary TIN4W.00006 A non-alignment between the reference code and its specification is under investigation.
    Problem Text
    The reference implementation (i.e. The X11 code provided by TOG) being
    tested is not in line with the standard specification for this X11
    function as defined in the "X Toolkit Intrinsics - C Language
    Interface".
    The assertion being tested is in line with the standard specification
    but the behavior of this function is not in line with the specification.

    Either the X11 reference implementation is at fault, or the
    Specification needs to be aligned with the reference implemenation. It
    is our understanding that X11R6.1 is no longer supported by TOG,
    hence we request this waiver be granted a Permanent Interpretation.

    Section 6.2 of the "X Toolkit Intrinsics - C Language Interface" states:

    "If the geometry manager returns XtGeometryDone, the change has been approved
    and actually has been done. In this case, XtMakeGeometryRequest does no
    configuring and returns XtGeometryYes. XtMakeGeometryRequest never returns
    XtGeometryDone."

    The problem here is that _XtMakeGeometryRequest() is returning "XtGeometryDone"
    when it should never be. XtMakeResizeRequest() calls _XtMakeGeometryRequest().

    Please see the sample code below for an explanation as to why the test
    purpose if failing.

    --------------------------------------------------------------------

    FILE: $TET_ROOT/vsw5/tset/Xt8/tmkrsizrt/Test.c

    static void t009(){
    .
    .
    .
    formw_good = XtCreateManagedWidget("avsform",
    avsformWidgetClass,
    boxw1,
    NULL,
    0);
    tet_infoline("PREP: Create avsform2 widget in avsform widget");
    formw_good2 = XtCreateManagedWidget("avsform2",
    avsform2WidgetClass,
    formw_good,
    NULL,
    0);
    .
    .
    .
    /*this forces the avsForm (parent) widget's geometry manager to
    return XtMakeGeometryDone*/
    avs_set_event(5, 77);

    /*
    * The value of result is "XtGeometryDone".
    XtMakeResizeRequest()
    * calls _XtMakeGeometryRequest(). According to the spec
    * _XtMakeGeometryRequest() is NEVER supposed to return
    * "XtGeometryDone".
    */
    result = XtMakeResizeRequest(formw_good2, width, height,
    &width_return, &height_return);
    .
    .
    .
    }

    --------------------------------------------------------------------

    FILE: Xt/Geometry.c

    XtGeometryResult
    XtMakeResizeRequest (widget, width, height, replyWidth, replyHeight)
    Widget widget;
    Dimension width, height;
    Dimension *replyWidth, *replyHeight;
    {
    .
    .
    .
    r = _XtMakeGeometryRequest(widget, &request, &reply, &junk);
    .
    .
    .
    return r;
    }

    --------------------------------------------------------------------

    FILE: Xt/Geometry.c

    XtGeometryResult
    _XtMakeGeometryRequest (widget, request, reply, clear_rect_obj)
    Widget widget;
    XtWidgetGeometry *request, *reply;
    Boolean * clear_rect_obj;
    {
    .
    .
    .
    /* go ask the widget's geometry manager */
    if (reply == (XtWidgetGeometry *) NULL) {
    returnCode = (*manager)(widget, request, &junk);
    } else {
    returnCode = (*manager)(widget, request, reply);
    }
    .
    .
    .
    /*
    * The GeometryManager() function returns "XtGeometryDone" (see
    below).
    * Thus, it satisfies the condition "returnCode != XtGeometryYes" and

    * the function returns.
    */
    if ((returnCode != XtGeometryYes) ||
    (req.changeMask & XtCWQueryOnly) || !XtIsRealized(widget)) {

    return returnCode;
    }
    .
    .
    .
    }

    --------------------------------------------------------------------

    FILE: "$TET_ROOT/vsw5/src/libXtTest/AvsForm.c"

    static XtGeometryResult GeometryManager(w, request, reply)
    Widget w;
    XtWidgetGeometry *request;
    XtWidgetGeometry *reply; /* RETURN */
    {
    .
    .
    .
    save5 = avs_get_event(5);
    avs_set_event(5, 1);

    /*force this for XtMakeGeometryRequest test 9 if requested*/
    if (save5 == 77) {
    return(XtGeometryDone);
    }
    .
    .
    .
    }
    Test Output
    520|2392 9 3995 1 1|VSW5TESTSUITE PURPOSE 9
    520|2392 9 3995 1 2|Assertion XtMakeResizeRequest-9.(A)
    520|2392 9 3995 1 3|A call to XtGeometryResult XtMakeResizeRequest(w, width,
    520|2392 9 3995 1 4|height, width_return, height_return) when the widget w is
    520|2392 9 3995 1 5|realized, the width field of the widget is not equal to
    520|2392 9 3995 1 6|width or the height field is not equal to height, and the
    520|2392 9 3995 1 7|call to the geometry_manager procedure of the widget's
    520|2392 9 3995 1 8|parent returns XtGeometryDone shall return XtGeometryYes.
    520|2392 9 3942 1 1|PREP: Initialize toolkit, Open display and Create topLevel root widget
    520|2392 9 3942 1 2|PREP: Create avsform widget in boxw1 widget
    520|2392 9 3942 1 3|PREP: Create avsform2 widget in avsform widget
    520|2392 9 3942 1 4|PREP: Create windows for widgets and map them
    520|2392 9 3942 1 5|TEST: Change geometry of avsform2 widget
    520|2392 9 3942 1 6|TEST: return value is XtGeometryYes
    520|2392 9 3942 1 7|ERROR: Expected XtMakeGeometryRequest result of 0, Received 3
    520|2392 9 4183 2 1|TEST: Parent's Geometry manager was invoked
    220|2392 9 1 15:35:52|FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    A non-alignment between the reference code and its specification is
    under investigation. Thus it is recommended that a Temporary
    Interpretation be granted for this test while it remains subject to review.
    If a change to the specification results from the conclusion of this
    investigation, then this Temporary Interpretation will be converted
    to a Permanent Waiver. Otherwise this Temporary Interpretation will
    be converted to a Temporary Waiver (Minor System Fault)

    Note that this TIN may only be applied for VSW5.0.0. In VSW5.0.1 the
    XT_COVERAGE configuration variable may be used to surpress this test.

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

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority