From: Anton Baskanov baskanov@gmail.com
--- dlls/ddraw/tests/ddraw1.c | 75 +++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw2.c | 89 +++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw4.c | 89 +++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw7.c | 89 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 342 insertions(+)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c index 167ef8a3dc4..d7ead313166 100644 --- a/dlls/ddraw/tests/ddraw1.c +++ b/dlls/ddraw/tests/ddraw1.c @@ -3015,6 +3015,12 @@ static void test_coop_level_mode_set(void) {0, FALSE, 0}, };
+ static const struct message release_messages[] = + { + {WM_PAINT, FALSE, 0}, + {0, FALSE, 0}, + }; + memset(&devmode, 0, sizeof(devmode)); devmode.dmSize = sizeof(devmode); ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); @@ -3118,7 +3124,13 @@ static void test_coop_level_mode_set(void) param.user32_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.user32_height, "Expected surface height %lu, got %lu.\n", param.user32_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3135,6 +3147,7 @@ static void test_coop_level_mode_set(void) param.ddraw_height, ddsd.dwHeight);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
@@ -3242,7 +3255,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* For Wine. */ change_ret = ChangeDisplaySettingsW(NULL, CDS_FULLSCREEN); @@ -3288,7 +3308,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3369,7 +3396,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3417,7 +3450,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3465,7 +3505,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3539,7 +3586,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3587,7 +3640,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3612,7 +3672,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
GetWindowRect(window, &r); flaky /* win8 */ @@ -3641,7 +3708,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL; + hr = IDirectDraw_RestoreDisplayMode(ddraw); ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#lx.\n", hr);
@@ -3649,6 +3723,7 @@ static void test_coop_level_mode_set(void) ok(!ref, "Unexpected refcount %lu.\n", ref);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c index de4778e8d24..8d8d03861d2 100644 --- a/dlls/ddraw/tests/ddraw2.c +++ b/dlls/ddraw/tests/ddraw2.c @@ -3107,6 +3107,12 @@ static void test_coop_level_mode_set(void) {0, FALSE, 0}, };
+ static const struct message release_messages[] = + { + {WM_PAINT, FALSE, 0}, + {0, FALSE, 0}, + }; + memset(&devmode, 0, sizeof(devmode)); devmode.dmSize = sizeof(devmode); ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); @@ -3215,7 +3221,13 @@ static void test_coop_level_mode_set(void) param.user32_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.user32_height, "Expected surface height %lu, got %lu.\n", param.user32_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3232,6 +3244,7 @@ static void test_coop_level_mode_set(void) param.ddraw_height, ddsd.dwHeight);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
@@ -3339,7 +3352,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* For Wine. */ change_ret = ChangeDisplaySettingsW(NULL, CDS_FULLSCREEN); @@ -3385,7 +3405,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3466,7 +3493,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3514,7 +3547,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3562,7 +3602,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3636,7 +3683,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3684,7 +3737,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3709,7 +3769,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
GetWindowRect(window, &r); flaky /* win8 */ @@ -3755,7 +3822,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* The screen restore is a property of DDSCL_EXCLUSIVE */ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_FULLSCREEN); @@ -3779,7 +3853,13 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
hr = IDirectDraw2_RestoreDisplayMode(ddraw); ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#lx.\n", hr); @@ -3811,6 +3891,7 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, registry_mode.dmPelsHeight, screen_size2.cx, screen_size2.cy);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r)); GetWindowRect(window2, &r); @@ -3830,12 +3911,20 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ref = IDirectDraw2_Release(ddraw); ok(!ref, "Unexpected refcount %lu.\n", ref);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index 96bdbf37183..1190b213490 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -3347,6 +3347,12 @@ static void test_coop_level_mode_set(void) {0, FALSE, 0}, };
+ static const struct message release_messages[] = + { + {WM_PAINT, FALSE, 0}, + {0, FALSE, 0}, + }; + memset(&devmode, 0, sizeof(devmode)); devmode.dmSize = sizeof(devmode); ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); @@ -3455,7 +3461,13 @@ static void test_coop_level_mode_set(void) param.user32_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.user32_height, "Expected surface height %lu, got %lu.\n", param.user32_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3472,6 +3484,7 @@ static void test_coop_level_mode_set(void) param.ddraw_height, ddsd.dwHeight);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
@@ -3582,7 +3595,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* For Wine. */ change_ret = ChangeDisplaySettingsW(NULL, CDS_FULLSCREEN); @@ -3628,7 +3648,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3702,7 +3729,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3750,7 +3783,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3798,7 +3838,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3872,7 +3919,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3920,7 +3973,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3945,7 +4005,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
GetWindowRect(window, &r); flaky /* win8 */ @@ -3991,7 +4058,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* The screen restore is a property of DDSCL_EXCLUSIVE */ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_FULLSCREEN); @@ -4015,7 +4089,13 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
hr = IDirectDraw4_RestoreDisplayMode(ddraw); ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#lx.\n", hr); @@ -4047,6 +4127,7 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, registry_mode.dmPelsHeight, screen_size2.cx, screen_size2.cy);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r)); GetWindowRect(window2, &r); @@ -4066,12 +4147,20 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface4_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ref = IDirectDraw4_Release(ddraw); ok(!ref, "Unexpected refcount %lu.\n", ref);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 343ca652214..e99270e2427 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -3119,6 +3119,12 @@ static void test_coop_level_mode_set(void) {0, FALSE, 0}, };
+ static const struct message release_messages[] = + { + {WM_PAINT, FALSE, 0}, + {0, FALSE, 0}, + }; + memset(&devmode, 0, sizeof(devmode)); devmode.dmSize = sizeof(devmode); ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); @@ -3227,7 +3233,13 @@ static void test_coop_level_mode_set(void) param.user32_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.user32_height, "Expected surface height %lu, got %lu.\n", param.user32_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3244,6 +3256,7 @@ static void test_coop_level_mode_set(void) param.ddraw_height, ddsd.dwHeight);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));
@@ -3354,7 +3367,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* For Wine. */ change_ret = ChangeDisplaySettingsW(NULL, CDS_FULLSCREEN); @@ -3400,7 +3420,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3474,7 +3501,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3522,7 +3555,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3570,7 +3610,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3644,7 +3691,13 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
memset(&ddsd, 0, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); @@ -3692,7 +3745,14 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ret = EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode); ok(ret, "Failed to get display mode.\n"); @@ -3717,7 +3777,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
GetWindowRect(window, &r); flaky /* win8 */ @@ -3763,7 +3830,14 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
/* The screen restore is a property of DDSCL_EXCLUSIVE */ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_FULLSCREEN); @@ -3787,7 +3861,13 @@ static void test_coop_level_mode_set(void) param.ddraw_width, ddsd.dwWidth); ok(ddsd.dwHeight == param.ddraw_height, "Expected surface height %lu, got %lu.\n", param.ddraw_height, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + todo_wine ok(!expect_messages->message, "Expected message %#x, but didn't receive it.\n", expect_messages->message); + expect_messages = NULL;
hr = IDirectDraw7_RestoreDisplayMode(ddraw); ok(SUCCEEDED(hr), "RestoreDisplayMode failed, hr %#lx.\n", hr); @@ -3819,6 +3899,7 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, registry_mode.dmPelsHeight, screen_size2.cx, screen_size2.cy);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r)); GetWindowRect(window2, &r); @@ -3838,12 +3919,20 @@ static void test_coop_level_mode_set(void) registry_mode.dmPelsWidth, ddsd.dwWidth); ok(ddsd.dwHeight == registry_mode.dmPelsHeight, "Expected surface height %lu, got %lu.\n", registry_mode.dmPelsHeight, ddsd.dwHeight); + + flush_events(); + expect_messages = release_messages; IDirectDrawSurface7_Release(primary); + flush_events(); + flaky /* win10 21H2 with QXL driver */ + ok(expect_messages->message == WM_PAINT, "Unexpected WM_PAINT.\n"); + expect_messages = NULL;
ref = IDirectDraw7_Release(ddraw); ok(!ref, "Unexpected refcount %lu.\n", ref);
GetWindowRect(window, &r); + flaky /* win10 21H2 with QXL driver */ ok(EqualRect(&r, &ddraw_rect), "Expected %s, got %s.\n", wine_dbgstr_rect(&ddraw_rect), wine_dbgstr_rect(&r));