[PATCH 2/6] user32/tests: Add some (Enum|Change)DisplaySettings last error tests.
Rémi Bernon
rbernon at codeweavers.com
Mon Oct 18 06:31:48 CDT 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/user32/tests/monitor.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c
index 131721d7ec1..bd89a8d9a40 100644
--- a/dlls/user32/tests/monitor.c
+++ b/dlls/user32/tests/monitor.c
@@ -225,6 +225,27 @@ static void test_EnumDisplayDevices(void)
ok( broken( monitor_count == 0 ) || monitor_count > 0, "Expect at least one monitor found\n" );
}
+static void test_EnumDisplaySettings(void)
+{
+ DISPLAY_DEVICEW adapter = {.cb = sizeof(DISPLAY_DEVICEW)};
+ DEVMODEW devmode = {.dmSize = sizeof(DEVMODEW)};
+ BOOL ret;
+
+ ret = EnumDisplayDevicesW( NULL, 0, &adapter, 0 );
+ ok( ret, "EnumDisplayDevicesW failed, error %u\n", GetLastError() );
+
+ SetLastError( 0xdeadbeef );
+ ret = EnumDisplaySettingsExW( adapter.DeviceName, ENUM_REGISTRY_SETTINGS, &devmode, 0 );
+ ok( ret, "EnumDisplaySettingsExW failed, error %u\n", GetLastError() );
+ todo_wine
+ ok( GetLastError() == 0xdeadbeef, "EnumDisplaySettingsExW set last error %u\n", GetLastError() );
+
+ SetLastError( 0xdeadbeef );
+ ret = EnumDisplaySettingsExW( adapter.DeviceName, ENUM_CURRENT_SETTINGS, &devmode, 0 );
+ ok( ret, "EnumDisplaySettingsExW failed, error %u\n", GetLastError() );
+ ok( GetLastError() == 0xdeadbeef, "EnumDisplaySettingsExW set last error %u\n", GetLastError() );
+}
+
struct vid_mode
{
DWORD w, h, bpp, freq, fields;
@@ -521,8 +542,11 @@ static void test_ChangeDisplaySettingsEx(void)
dm.dmSize = sizeof(dm);
dm.dmFields = DM_POSITION | DM_PELSWIDTH | DM_PELSHEIGHT;
dm.dmPosition = devices[0].original_mode.dmPosition;
+ SetLastError(0xdeadbeef);
res = ChangeDisplaySettingsExA(devices[0].name, &dm, NULL, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
ok(res == DISP_CHANGE_SUCCESSFUL, "ChangeDisplaySettingsExA %s returned unexpected %d\n", devices[0].name, res);
+ todo_wine
+ ok(GetLastError() == 0xdeadbeef, "ChangeDisplaySettingsExA set last error %u\n", GetLastError());
res = ChangeDisplaySettingsExA(NULL, NULL, NULL, 0, NULL);
ok(res == DISP_CHANGE_SUCCESSFUL ||
broken(res == DISP_CHANGE_FAILED), /* win8 TestBot */
@@ -538,8 +562,11 @@ static void test_ChangeDisplaySettingsEx(void)
ok(count == old_count, "Expect monitor count %d, got %d\n", old_count, count);
/* Restore registry settings */
+ SetLastError(0xdeadbeef);
res = ChangeDisplaySettingsExA(devices[0].name, &devices[0].original_mode, NULL,
CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
+ todo_wine
+ ok(GetLastError() == 0xdeadbeef, "ChangeDisplaySettingsExA set last error %u\n", GetLastError());
ok(res == DISP_CHANGE_SUCCESSFUL ||
broken(res == DISP_CHANGE_BADPARAM) || /* win10 */
broken(res == DISP_CHANGE_FAILED), /* win8 TestBot */
@@ -563,8 +590,11 @@ static void test_ChangeDisplaySettingsEx(void)
dm.dmSize = sizeof(dm);
dm.dmFields = DM_POSITION;
dm.dmPosition = devices[1].original_mode.dmPosition;
+ SetLastError(0xdeadbeef);
res = ChangeDisplaySettingsExA(devices[1].name, &dm, NULL, CDS_UPDATEREGISTRY | CDS_NORESET, NULL);
ok(res == DISP_CHANGE_SUCCESSFUL, "ChangeDisplaySettingsExA %s returned unexpected %d\n", devices[1].name, res);
+ todo_wine
+ ok(GetLastError() == 0xdeadbeef, "ChangeDisplaySettingsExA set last error %u\n", GetLastError());
res = ChangeDisplaySettingsExA(devices[1].name, NULL, NULL, 0, NULL);
ok(res == DISP_CHANGE_SUCCESSFUL, "ChangeDisplaySettingsExA %s returned unexpected %d\n", devices[1].name, res);
@@ -2333,6 +2363,7 @@ START_TEST(monitor)
{
init_function_pointers();
test_EnumDisplayDevices();
+ test_EnumDisplaySettings();
test_ChangeDisplaySettingsEx();
test_DisplayConfigSetDeviceInfo();
test_EnumDisplayMonitors();
--
2.33.0
More information about the wine-devel
mailing list