user32/tests: Do not change adapters to every available modes.

This reduce the time to run the monitor test from 6 minutes to 25 seconds.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50086
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zhiyi Zhang 2021-05-17 15:20:21 +08:00 committed by Alexandre Julliard
parent b069e48c13
commit cad102465d
1 changed files with 38 additions and 1 deletions

View File

@ -333,6 +333,7 @@ static void test_ChangeDisplaySettingsEx(void)
DISPLAY_DEVICEA dd;
POINTL position;
DEVMODEW dmW;
BOOL found;
LONG res;
int i;
@ -732,7 +733,7 @@ static void test_ChangeDisplaySettingsEx(void)
ok(count == old_count - 1, "Expect monitor count %d, got %d\n", old_count - 1, count);
}
/* Test changing each adapter to every available mode */
/* Test changing each adapter to different width, height, frequency and depth */
position.x = 0;
position.y = 0;
for (device = 0; device < device_count; ++device)
@ -741,6 +742,42 @@ static void test_ChangeDisplaySettingsEx(void)
dm.dmSize = sizeof(dm);
for (mode = 0; EnumDisplaySettingsExA(devices[device].name, mode, &dm, 0); ++mode)
{
if (mode == 0)
{
dm2 = dm;
}
else
{
found = FALSE;
if (dm2.dmPelsWidth && dm.dmPelsWidth != dm2.dmPelsWidth)
{
dm2.dmPelsWidth = 0;
found = TRUE;
}
if (dm2.dmPelsHeight && dm.dmPelsHeight != dm2.dmPelsHeight)
{
dm2.dmPelsHeight = 0;
found = TRUE;
}
if (dm2.dmDisplayFrequency && dm.dmDisplayFrequency != dm2.dmDisplayFrequency)
{
dm2.dmDisplayFrequency = 0;
found = TRUE;
}
if (dm2.dmBitsPerPel && dm.dmBitsPerPel != dm2.dmBitsPerPel)
{
dm2.dmBitsPerPel = 0;
found = TRUE;
}
if (!dm2.dmPelsWidth && !dm2.dmPelsHeight && !dm2.dmDisplayFrequency
&& !dm2.dmBitsPerPel)
break;
if (!found)
continue;
}
dm.dmPosition = position;
dm.dmFields |= DM_POSITION;
/* Reattach detached non-primary adapters, otherwise ChangeDisplaySettingsExA with only CDS_RESET fails */