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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1692 Actions


    Problem Report Number 1692
    Submitter's Classification Specification problem
    State Resolved
    Resolution Minor System Fault (MSF)
    Problem Resolution ID MSF.X.0065
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-04-15 08:00
    Expiry Date null
    Product Standard Window System Application Interface V2
    Certification Program The Open Brand certification program
    Test Suite VSW version 5.0.0
    Test Identification Xt11/XtCallConverter 11, 12, 13
    Problem Summary MSF4W.00015 Test failures due to a non-alignment between the reference code and its specification prior to X11R6.4.
    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.

    The assertion for Xt11/XtCallConverter, TP #11 is:

    When the type converter converter has not been registered
    for the application context associated with display, the
    converter has been previously called with the specified
    arguments, and the conversion failed a call to Boolean
    XtCallConverter(display, converter, args, num_args, from,
    to_in_out, cache_ref_return) shall return False immediately.

    The XtCallConverter doc says:

    The XtCallConverter function looks up the specified type converter in the
    application context associated with the display and, if the converter
    was not registered or was registered with cache type XtCacheAll or
    XtCacheByDisplay looks in the conversion cache to see if this
    conversion procedure has been called with the specified conversion
    arguments. If so, it checks the success status of the prior call, and
    if the conversion failed, XtCallConverter returns False immediately;

    [The implication is that if the previous converstion failed, the
    converter will NOT be called before XtCallConverter returns.]

    If a converter is not registered (via Xt[App]SetTypeConverter), the code

    in Xt (lib/Xt/Convert.c) has two problems that cause TP #11 to fail:

    1. It does not cache the return status from converter functions

    2. It calls the converter regardless of the previous return value for
    the converter

    TP's 12 and 13 fail for similar reasons: no converter is registered
    and on subsequent calls to XtCallConverter, since there is no converter
    cache, the converter is invoked instead of using the values that should
    have been put in the cache during previous calls to XtCallConverter.
    In these two TPs, the to_in_out->size fields contain incorrect values.

    Also, for TP #13, XtCallConverter returns True but is should return
    False.
    Test Output
    520|1 11 22810 1 1|VSW5TESTSUITE PURPOSE 11
    520|1 11 22810 1 2|Assertion XtCallConverter-11.(A)
    520|1 11 22810 1 3|When the type converter converter has not been registered
    520|1 11 22810 1 4|for the application context associated with display, the
    520|1 11 22810 1 5|converter has been previously called with the specified
    520|1 11 22810 1 6|arguments, and the conversion failed a call to Boolean
    520|1 11 22810 1 7|XtCallConverter(display, converter, args, num_args, from,
    520|1 11 22810 1 8|to_in_out, cache_ref_return) shall return False immediately.
    520|1 11 22130 1 1|PREP: Initialize toolkit, Open display and Create topLevel
    root widget
    520|1 11 22130 1 2|PREP: Create windows for widgets and map them
    520|1 11 22130 1 3|TEST: Invoke resource converter XtCVT2a_StringToChar
    520|1 11 22130 1 4|TEST: Return value was false
    520|1 11 22130 1 5|TEST: Convertor was invoked
    520|1 11 22130 1 6|TEST: Re-Invoke resource converter with same values
    520|1 11 22130 1 7|TEST: Return value was false
    520|1 11 22130 1 8|TEST: Convertor was not invoked
    520|1 11 22130 1 9|ERROR: Expected XtCVT2a_StringToChar invoked count of
    1,
    Received 2
    220|1 11 1 12:04:12|FAIL
    410|1 11 1 12:04:12|IC End
    400|1 12 1 12:04:12|IC Start
    200|1 12 12:04:12|TP Start
    520|1 12 22810 1 1|VSW5TESTSUITE PURPOSE 12
    520|1 12 22810 1 2|Assertion XtCallConverter-12.(A)
    520|1 12 22810 1 3|When the type converter converter has not been registered
    520|1 12 22810 1 4|for the application context associated with display, the
    520|1 12 22810 1 5|converter has been previously called with the specified
    520|1 12 22810 1 6|arguments, the conversion succeeded, and the size specified
    520|1 12 22810 1 7|by the to_in_out argument is greater than or equal to the
    520|1 12 22810 1 8|size stored in the conversion cache a call to Boolean
    520|1 12 22810 1 9|XtCallConverter(display, converter, args, num_args, from,
    520|1 12 22810 1 10|to_in_out, cache_ref_return) shall copy the information
    520|1 12 22810 1 11|stored in the conversion cache into the location specified
    520|1 12 22810 1 12|by to_in_out->addr, copy the size specified in the
    520|1 12 22810 1 13|conversion cache into to_in_out->size, and return
    True.
    520|1 12 22866 1 1|PREP: Initialize toolkit, Open display and Create
    topLevel
    root widget
    520|1 12 22866 1 2|PREP: Create windows for widgets and map them
    520|1 12 22866 1 3|TEST: Invoke resource converter XtCVT3a_StringToChar
    520|1 12 22866 1 4|TEST: Return value
    520|1 12 22866 1 5|TEST: Procedure XtCVT3a_StringToChar was invoked
    520|1 12 22866 1 6|TEST: Result returned
    520|1 12 22866 1 7|TEST: Re-Invoke resource converter with same values
    520|1 12 22866 1 8|TEST: Return value
    520|1 12 22866 1 9|TEST: Procedure XtCVT3a_StringToChar was not invoked
    520|1 12 22866 1 10|ERROR: Expected XtCVT3a_StringToChar invoked count
    of 1, Received 2
    520|1 12 22866 1 11|TEST: Result returned
    520|1 12 22866 1 12|TEST: Size returned
    220|1 12 1 12:04:13|FAIL
    410|1 12 1 12:04:13|IC End
    400|1 13 1 12:04:13|IC Start
    200|1 13 12:04:13|TP Start
    520|1 13 22810 1 1|VSW5TESTSUITE PURPOSE 13
    520|1 13 22810 1 2|Assertion XtCallConverter-13.(A)
    520|1 13 22810 1 3|When the type converter converter has not been registered
    520|1 13 22810 1 4|for the application context associated with display, the
    520|1 13 22810 1 5|converter has been previously called with the specified
    520|1 13 22810 1 6|arguments, the conversion succeeded, and the size specified
    520|1 13 22810 1 7|by the to_in_out argument is less than the size stored in
    520|1 13 22810 1 8|the conversion cache a call to Boolean
    520|1 13 22810 1 9|XtCallConverter(display, converter, args, num_args, from,
    520|1 13 22810 1 10|to_in_out, cache_ref_return) shall copy the size specified
    520|1 13 22810 1 11|in the conversion cache into to_in_out->size and return
    520|1 13 22810 1 12|False.
    520|1 13 22129 1 1|PREP: Initialize toolkit, Open display and Create
    topLevel
    root widget
    520|1 13 22129 1 2|PREP: Create windows for widgets and map them
    520|1 13 22129 1 3|TEST: Invoke resource converter XtCVT4a_StringToChar
    520|1 13 22129 1 4|TEST: Return value
    520|1 13 22129 1 5|TEST: Procedure XtCVT4a_StringToChar was invoked
    520|1 13 22129 1 6|TEST: Result returned
    520|1 13 22129 1 7|TEST: Re-Invoke resource converter with short size
    520|1 13 22129 1 8|TEST: Return value
    520|1 13 22129 1 9|ERROR: Expected XtCallConverter return value of 0,
    Received 1
    520|1 13 22129 1 10|TEST: Procedure XtCVT4a_StringToChar was not invoked
    520|1 13 22129 1 11|ERROR: Expected XtCVT4a_StringToChar invoked count of 1,
    Received 2
    520|1 13 22129 1 12|TEST: Size returned
    220|1 13 1 12:04:14|FAIL
    410|1 13 1 12:04:14|IC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    A Minor System Fault waiver is recommended.

    Open Group procedures specify that when there is a version of the
    reference code available from The Open Group that aligns with the
    specification for a reported defect that an MSF is issued. These
    failures are XPT defect XWSog08567 which is corrected in X11R6.4.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Minor System Fault (MSF)
    Review Conclusion
    A Temporary Waiver is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority