[PATCH v2 1/3] user32/tests: Avoid unnecessary display mode changes.

Zhiyi Zhang zzhang at codeweavers.com
Mon Apr 18 01:55:14 CDT 2022


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
v2: Supersede 231843~231844. Avoid unnecessary display mode changes when possible. 2/3 is not merged
    to other tests because there aren't existing tests that can cover all the required display depths.
    Running all the user32 monitor tests takes <=25 seconds on the Linux TestBots.

 dlls/user32/tests/monitor.c | 35 ++++-------------------------------
 1 file changed, 4 insertions(+), 31 deletions(-)

diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c
index d0d4ff1f324..fdb13216ad9 100644
--- a/dlls/user32/tests/monitor.c
+++ b/dlls/user32/tests/monitor.c
@@ -484,8 +484,6 @@ static void test_ChangeDisplaySettingsEx(void)
     }
     if (pSetThreadDpiAwarenessContext && context)
         pSetThreadDpiAwarenessContext(context);
-    res = ChangeDisplaySettingsExA(NULL, NULL, NULL, CDS_RESET, NULL);
-    ok(res == DISP_CHANGE_SUCCESSFUL, "Failed to reset default resolution: %ld\n", res);
 
     /* Save the original mode for all devices so that they can be restored at the end of tests */
     device_count = 0;
@@ -568,10 +566,6 @@ static void test_ChangeDisplaySettingsEx(void)
                 broken(res == DISP_CHANGE_BADPARAM) || /* win10 */
                 broken(res == DISP_CHANGE_FAILED), /* win8 TestBot */
                 "ChangeDisplaySettingsExA %s returned unexpected %ld\n", devices[0].name, res);
-        res = ChangeDisplaySettingsExA(NULL, NULL, NULL, 0, NULL);
-        ok(res == DISP_CHANGE_SUCCESSFUL ||
-                broken(res == DISP_CHANGE_FAILED), /* win8 TestBot */
-                "ChangeDisplaySettingsExA %s returned unexpected %ld\n", devices[0].name, res);
     }
 
     /* Test that only specifying DM_POSITION in dmFields is not enough to detach an adapter */
@@ -2260,34 +2254,13 @@ static void test_display_dc(void)
     SelectObject(mem_dc, old_hbitmap);
     DeleteDC(mem_dc);
 
-    /* Tests after mode changes to a different resolution */
+    /* Tests after mode changes to a mode with different resolution and color depth */
     memset(&dm2, 0, sizeof(dm2));
     dm2.dmSize = sizeof(dm2);
     for (mode_idx = 0; EnumDisplaySettingsA(NULL, mode_idx, &dm2); ++mode_idx)
     {
-        if (dm2.dmPelsWidth != dm.dmPelsWidth && dm2.dmPelsHeight != dm.dmPelsHeight)
-            break;
-    }
-    ok(dm2.dmPelsWidth && dm2.dmPelsWidth != dm.dmPelsWidth && dm2.dmPelsHeight != dm.dmPelsHeight,
-            "Failed to find a different resolution.\n");
-
-    res = ChangeDisplaySettingsExA(NULL, &dm2, NULL, CDS_RESET, NULL);
-    ok(res == DISP_CHANGE_SUCCESSFUL || broken(res == DISP_CHANGE_FAILED), /* Win8 TestBots */
-            "ChangeDisplaySettingsExA returned unexpected %ld.\n", res);
-    if (res == DISP_CHANGE_SUCCESSFUL)
-    {
-        check_display_dc(hdc, &dm2, FALSE);
-
-        res = ChangeDisplaySettingsExA(NULL, NULL, NULL, 0, NULL);
-        ok(res == DISP_CHANGE_SUCCESSFUL, "ChangeDisplaySettingsExA returned unexpected %ld.\n", res);
-    }
-
-    /* Tests after mode changes to a different color depth */
-    memset(&dm2, 0, sizeof(dm2));
-    dm2.dmSize = sizeof(dm2);
-    for (mode_idx = 0; EnumDisplaySettingsA(NULL, mode_idx, &dm2); ++mode_idx)
-    {
-        if (dm2.dmBitsPerPel != dm.dmBitsPerPel && dm2.dmBitsPerPel != 1)
+        if (dm2.dmPelsWidth != dm.dmPelsWidth && dm2.dmPelsHeight != dm.dmPelsHeight &&
+            dm2.dmBitsPerPel != dm.dmBitsPerPel && dm2.dmBitsPerPel != 1)
             break;
     }
     if (dm2.dmBitsPerPel && dm2.dmBitsPerPel != dm.dmBitsPerPel)
@@ -2357,7 +2330,7 @@ static void test_display_dc(void)
     }
     else
     {
-        win_skip("Failed to find a different color depth other than %lu.\n", dm.dmBitsPerPel);
+        win_skip("Failed to find a required display mode.\n");
     }
 
     if (hbitmap)
-- 
2.32.0




More information about the wine-devel mailing list