Alexandre Julliard : user32/tests: Fix some more message test failures on Windows.
Alexandre Julliard
julliard at winehq.org
Tue Jan 20 08:27:54 CST 2009
Module: wine
Branch: master
Commit: d8375e2137080a21ee990f4c9c06ab515facc31b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d8375e2137080a21ee990f4c9c06ab515facc31b
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jan 20 14:02:02 2009 +0100
user32/tests: Fix some more message test failures on Windows.
---
dlls/user32/tests/msg.c | 42 +++++++++++++++++++++++++++++++-----------
1 files changed, 31 insertions(+), 11 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index 38cfeef..e8d5301 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -654,6 +654,8 @@ static const struct message WmCreateMaxPopupSeq[] = {
{ WM_SYNCPAINT, sent|wparam|optional, 4 },
{ WM_NCPAINT, sent|wparam|optional, 1 },
{ WM_ERASEBKGND, sent|optional },
+ { WM_NCPAINT, sent|wparam|defwinproc|optional, 1 },
+ { WM_ERASEBKGND, sent|defwinproc|optional },
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOCLIENTMOVE|SWP_NOCLIENTSIZE|SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE },
{ 0 }
};
@@ -728,6 +730,8 @@ static const struct message WmShowMaxPopupSeq[] = {
{ WM_SYNCPAINT, sent|wparam|optional, 4 },
{ WM_NCPAINT, sent|wparam|optional, 1 },
{ WM_ERASEBKGND, sent|optional },
+ { WM_NCPAINT, sent|wparam|defwinproc|optional, 1 },
+ { WM_ERASEBKGND, sent|defwinproc|optional },
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE },
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
{ 0 }
@@ -914,7 +918,7 @@ static const struct message WmHideChildSeq2[] = {
{ WM_SHOWWINDOW, sent|wparam, 0 },
{ WM_WINDOWPOSCHANGING, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE },
{ EVENT_OBJECT_HIDE, winevent_hook|wparam|lparam, 0, 0 },
- { WM_ERASEBKGND, sent|parent },
+ { WM_ERASEBKGND, sent|parent|optional },
{ WM_WINDOWPOSCHANGED, sent|wparam, SWP_HIDEWINDOW|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
{ 0 }
};
@@ -1868,8 +1872,17 @@ static void dump_sequence(const struct message *expected, const char *context, c
if (expected->message == actual->message)
{
- expected++;
- actual++;
+ if ((expected->flags & defwinproc) != (actual->flags & defwinproc) &&
+ (expected->flags & optional))
+ {
+ /* don't match messages if their defwinproc status differs */
+ expected++;
+ }
+ else
+ {
+ expected++;
+ actual++;
+ }
}
/* silently drop winevent messages if there is no support for them */
else if ((expected->flags & optional) || ((expected->flags & winevent_hook) && !hEvent_hook))
@@ -5658,7 +5671,7 @@ static const struct message WmParentErasePaint[] = {
{ WM_PAINT, sent },
{ WM_NCPAINT, sent|beginpaint },
{ WM_GETTEXT, sent|beginpaint|defwinproc|optional },
- { WM_ERASEBKGND, sent|beginpaint },
+ { WM_ERASEBKGND, sent|beginpaint|optional },
{ 0 }
};
@@ -5743,13 +5756,15 @@ static void test_paint_messages(void)
*/
trace("testing ValidateRect(0, NULL)\n");
SetRectEmpty( &rect );
- ok(ValidateRect(0, &rect), "ValidateRect(0, &rc) should not fail\n");
- check_update_rgn( hwnd, hrgn );
- ok_sequence( WmInvalidateErase, "InvalidateErase", FALSE );
- flush_events();
- ok_sequence( WmPaint, "Paint", FALSE );
- RedrawWindow( hwnd, NULL, NULL, RDW_VALIDATE );
- check_update_rgn( hwnd, 0 );
+ if (ValidateRect(0, &rect)) /* not supported on Win9x */
+ {
+ check_update_rgn( hwnd, hrgn );
+ ok_sequence( WmInvalidateErase, "InvalidateErase", FALSE );
+ flush_events();
+ ok_sequence( WmPaint, "Paint", FALSE );
+ RedrawWindow( hwnd, NULL, NULL, RDW_VALIDATE );
+ check_update_rgn( hwnd, 0 );
+ }
trace("testing InvalidateRgn(0, NULL, FALSE)\n");
SetLastError(0xdeadbeef);
@@ -8882,6 +8897,11 @@ static void test_PeekMessage(void)
qs_all_input &= ~QS_RAWINPUT;
qs_input &= ~QS_RAWINPUT;
}
+ if (qstatus & QS_POSTMESSAGE)
+ {
+ while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) /* nothing */ ;
+ qstatus = GetQueueStatus(qs_all_input);
+ }
ok(qstatus == 0, "wrong qstatus %08x\n", qstatus);
trace("signalling to send message\n");
More information about the wine-cvs
mailing list