Consider to enable the test only if some system property is set. A
normal user won't be able to distinguish between "infinite loop" and
"tales a very very long time".

Alternatively, select a representative subset of the 1.1M integers and
restrict the test to those.

Jochen


On Mon, Jan 4, 2010 at 9:50 PM, Vinayak Borkar <[email protected]> wrote:
> Its not an infinite loop --
> Expressions/Construct/DirectConElem/DirectConElemContent//Constr-cont-document-3.xq
>
> is taking a long time to run. I am pasting the query below.
>
> The query iterates over about 1.1 M integers 70 at a time and calls
> subsequence() for the 70 items in the window. This is a quadratic operation
> in the engine -- and takes a long time.
>
> Should we optimize this case?
>
>
> Thanks,
> Vinayak
>
>
> --- Query begin ---
>
>
> declare variable $codepoints as xs:integer+ := (9, (: 0x9 :)
>                                                10,(: 0xA :)
>                                                13,(: 0xD :)
>                                                32 to 55295, (: 0x20 - 0xD7FF
> :)
>                                                57344 to 65532, (: 0xE000 -
> 0xFFFD :)
>                                                65536 to 1114111 (: 0x10000 -
> 0x10FFFF :));
> declare variable $count as xs:integer := count($codepoints);
> declare variable $lineWidth as xs:integer := 70;
>
> <allCodepoints>
>    <!-- Each <r>-element represents a codepoint range. The 's' attribute
>         is the start codepoint, the 'e' attribute is the end codepoint.
>         Note that these are only *Hints*, since the character range is not
> contiguous.
>      -->
> {
>    "&#xA;",
>    "&#xA;",
>    (: The outputted file is rather big, so to make it managable, we output
>       a chunk of $lineWidth characters in each element.
>     :)
>    for $i in (1 to $count idiv $lineWidth)
>    let $startOffset := (($i - 1) * $lineWidth) + 1
>    return (<r s="{$codepoints[$startOffset]}"
>               e="{$codepoints[$startOffset] + $lineWidth}">
>                {
>                        codepoints-to-string(subsequence($codepoints,
> $startOffset, $lineWidth))
>                }
>           </r>, "&#xA;")
> }
> </allCodepoints>
>
> --- Query end ---
>
> Vinayak Borkar wrote:
>>
>> Till,
>>
>>
>> Does XTest on the test suite terminate? Some query is throwing the engine
>> into an infinite loop. Do you see this?
>>
>>
>> Thanks,
>> Vinayak
>>
>
>



-- 
Germanys national anthem is the most boring in the world - how telling!

Reply via email to