|
From: Francois V. <fvo...@fr...> - 2019-10-27 14:32:32
|
Le 12/10/2019 à 15:55, Harald Oehlmann a écrit :
> Am 12.10.2019 um 14:19 schrieb Francois Vogel:
>> Le 12/10/2019 à 10:07, Harald Oehlmann a écrit :
>>> Checkout is 440d0d87.
>>> I tested it against 8.6.6rc0
>>>
>>> The result for bind-32.2 is now:
>>>
>>> ==== bind-34.2 -warp works relatively to the screen FAILED
>>> ==== Contents of test case:
>>>
>>> # Contrary to bind-34.1, we're directly checking screen coordinates
>>> event generate {} <Motion> -x 20 -y 20 -warp 1
>>> update idletasks ; # DoWarp is an idle callback
>>> set res [winfo pointerxy .]
>>> event generate {} <Motion> -x 200 -y 200 -warp 1
>>> update idletasks ; # DoWarp is an idle callback
>>> lappend res {*}[winfo pointerxy .]
>>>
>>> ---- Result was:
>>> 628 651 200 200
>>> ---- Result should have been (exact matching):
>>> 20 20 200 200
>> This results indicates that the idle callback 'DoWarp' is not executed
>> at the time the test expects it to be.
>>
>> The command
>> event generate {} <Motion> -x 20 -y 20 -warp 1
>> schedules an idle callback 'DoWarp'.
>>
>> We want this callback to be serviced before requesting the pointer
>> position through
>> set res [winfo pointerxy .]
>> and that's why I'm calling 'update idletasks' in between these two
>> statements.
>>
>> If I remove this 'update idletasks', then I reproduce the behavior
>> you're seeing, this is normal and expected.
>>
>> But it shouldn't happen with the 'update idletasks'.
>> The test works on my system and I simply have no idea why it doesn't on
>> yours.
>>
>> Can you start debugging this? It's hard for me to guess since I don't
>> reproduce.
>>
>> The first thing to check is that in wish the following command:
>> event generate {} <Motion> -x 20 -y 20 -warp 1
>> moves the pointer at the correct position (20,20) in screen coordinates.
>> I'm sure it does so this should be a timing/event issue specific to the
>> test. Then, look at how the test can be improved to make it more robust
>> (against... what exactly...?)
>>
>> Thanks,
>> Francois
>>
> I have tried it manually, copy the test into wish: works always
> I have tried it multiple times:
>
> nmake -f Makefile.vc test TESTFLAGS="-file bind.test -match bind-34.2
> -verbose bte"
>
> Result: 5 ok, 2 failures. So, roughly 1 of 3 fail.
I could reproduce, but much less often than you (one in 50 times,
approximately).
I have committed a change to help bind-34.* tests to pass on Windows,
please see the associated theory here:
https://core.tcl-lang.org/tk/tktview?name=69b48f427e
Could you please try again core-8-6-branch and report your findings in
the ticket?
Thanks!
Francois
>
> THank you,
> Harald
|