[PATCH] user32/tests: Skip monitor tests with modes larger than original.

Zhiyi Zhang zzhang at codeweavers.com
Fri Aug 7 10:20:24 CDT 2020



On 8/7/20 10:47 PM, Rémi Bernon wrote:
> On 2020-08-07 16:36, Zhiyi Zhang wrote:
>>
>>
>> On 8/7/20 6:35 PM, Rémi Bernon wrote:
>>> This seems to cause a lot of timeouts on the testbot, for some reason.
>>>
>>> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
>>> ---
>>>
>>> Clearly this is not ideal, but it looks like the timeouts weren't
>>> completely fixed by the update. In particular the 32bit runs are still
>>> failing.
>> Hi Rémi,
>>
>> You patch prompted me to look at this again and I think I found the cause this time[1]
>> but I can't be sure as I can't reproduce it locally. Anyway, even if this patch works,
>> the bug will still pop up in, for example, dxgi, d3d* tests when they change resolutions.
>> We should at least look into TestBot again before accepting such workarounds.
>>
>> Thanks,
>> Zhiyi
>>
>> 1: https://www.winehq.org/pipermail/wine-devel/2020-August/171411.html
>>>   dlls/user32/tests/monitor.c | 6 ++++++
>>>   1 file changed, 6 insertions(+)
>>>
>>> diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c
>>> index 85fb2f080a7..3809221f76c 100644
>>> --- a/dlls/user32/tests/monitor.c
>>> +++ b/dlls/user32/tests/monitor.c
>>> @@ -627,6 +627,12 @@ static void test_ChangeDisplaySettingsEx(void)
>>>           dm.dmSize = sizeof(dm);
>>>           for (mode = 0; EnumDisplaySettingsExA(devices[device].name, mode, &dm, 0); ++mode)
>>>           {
>>> +            if (dm.dmPelsWidth > devices[0].original_mode.dmPelsWidth || dm.dmPelsHeight > devices[0].original_mode.dmPelsHeight)
>>> +            {
>>> +                trace("skipping display mode %s %dx%d@%d\n", devices[device].name, dm.dmPelsWidth, dm.dmPelsHeight, dm.dmDisplayFrequency);
>>> +                continue;
>>> +            }
>>> +
>>>               dm.dmPosition = position;
>>>               dm.dmFields |= DM_POSITION;
>>>               res = ChangeDisplaySettingsExA(devices[device].name, &dm, NULL, CDS_RESET, NULL);
>>
>
> Thanks for looking into that.
>
> I actually wanted to resend my other user32 series but I didn't want to get the same timeout failures that took so long the last time. I think it's better now but it still takes an awful lot of time to run the tests because of this issue.
>
> If we can somehow temporarily downgrade the testbot it may be better, assuming that it's enough to fix it.
>
> Also, I don't know the code but I still wonder if it's really worth trying every possible display mode?

I thought about this before and decided it's best to keep them for now. The tests are still under the time limit
and I like tests to be exhaustive. For what's worth, it did expose the timeout bug, although probably not in wine.






More information about the wine-devel mailing list