Alexandre Julliard : user32/tests: Add support for testing only some bits of wparam or lparam. Make some more messages optional.
Alexandre Julliard
julliard at winehq.org
Thu Jan 15 08:51:23 CST 2009
Module: wine
Branch: master
Commit: 1608cb99b5beb50e1b3f680c832be47944270730
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1608cb99b5beb50e1b3f680c832be47944270730
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jan 15 15:43:58 2009 +0100
user32/tests: Add support for testing only some bits of wparam or lparam. Make some more messages optional.
---
dlls/user32/tests/msg.c | 65 +++++++++++++++++++++++++++++------------------
1 files changed, 40 insertions(+), 25 deletions(-)
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
index ac7e8ce..673f869 100644
--- a/dlls/user32/tests/msg.c
+++ b/dlls/user32/tests/msg.c
@@ -110,6 +110,8 @@ struct message {
msg_flags_t flags; /* message props */
WPARAM wParam; /* expected value of wParam */
LPARAM lParam; /* expected value of lParam */
+ WPARAM wp_mask; /* mask for wParam checks */
+ LPARAM lp_mask; /* mask for lParam checks */
};
struct recvd_message {
@@ -498,7 +500,7 @@ static const struct message WmShowRestoreMaxOverlappedSeq[] = {
{ WM_NCPAINT, sent|optional },
{ WM_GETTEXT, sent|defwinproc|optional },
{ WM_ERASEBKGND, sent|optional },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
{ WM_MOVE, sent|defwinproc|optional },
{ WM_SIZE, sent|defwinproc|wparam, SIZE_RESTORED },
{ WM_NCCALCSIZE, sent|wparam|optional, TRUE },
@@ -942,11 +944,11 @@ static const struct message WmShowChildSeq_4[] = {
/* ShowWindow(SW_MINIMIZE) for child with invisible parent */
static const struct message WmShowChildInvisibleParentSeq_1[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_MINIMIZE },
- { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOCOPYBITS|SWP_STATECHANGED },
+ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOCOPYBITS|SWP_STATECHANGED, 0, SWP_NOACTIVATE },
{ WM_NCCALCSIZE, sent|wparam, 1 },
{ EVENT_OBJECT_SHOW, winevent_hook|wparam|lparam, 0, 0 },
{ WM_CHILDACTIVATE, sent|optional },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOACTIVATE|SWP_NOREDRAW|SWP_NOCOPYBITS|SWP_STATECHANGED },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_FRAMECHANGED|SWP_NOREDRAW|SWP_NOCOPYBITS|SWP_STATECHANGED, 0, SWP_NOACTIVATE },
{ WM_MOVE, sent|defwinproc },
{ WM_SIZE, sent|defwinproc|wparam, SIZE_MINIMIZED },
{ EVENT_OBJECT_LOCATIONCHANGE, winevent_hook|wparam|lparam, 0, 0 },
@@ -1907,7 +1909,7 @@ static void ok_sequence_(const struct message *expected_list, const char *contex
{
if (expected->flags & wparam)
{
- if (expected->wParam != actual->wParam && todo)
+ if (((expected->wParam ^ actual->wParam) & ~expected->wp_mask) && todo)
{
todo_wine {
failcount ++;
@@ -1919,16 +1921,16 @@ static void ok_sequence_(const struct message *expected_list, const char *contex
}
else
{
- ok_( file, line)(expected->wParam == actual->wParam,
+ ok_( file, line)( ((expected->wParam ^ actual->wParam) & ~expected->wp_mask) == 0,
"%s: %u: in msg 0x%04x expecting wParam 0x%lx got 0x%lx\n",
context, count, expected->message, expected->wParam, actual->wParam);
- if (expected->wParam != actual->wParam) dump++;
+ if ((expected->wParam ^ actual->wParam) & ~expected->wp_mask) dump++;
}
}
if (expected->flags & lparam)
{
- if (expected->lParam != actual->lParam && todo)
+ if (((expected->lParam ^ actual->lParam) & ~expected->lp_mask) && todo)
{
todo_wine {
failcount ++;
@@ -1940,10 +1942,10 @@ static void ok_sequence_(const struct message *expected_list, const char *contex
}
else
{
- ok_( file, line)(expected->lParam == actual->lParam,
+ ok_( file, line)(((expected->lParam ^ actual->lParam) & ~expected->lp_mask) == 0,
"%s: %u: in msg 0x%04x expecting lParam 0x%lx got 0x%lx\n",
context, count, expected->message, expected->lParam, actual->lParam);
- if (expected->lParam != actual->lParam) dump++;
+ if ((expected->lParam ^ actual->lParam) & ~expected->lp_mask) dump++;
}
}
if ((expected->flags & defwinproc) != (actual->flags & defwinproc) && todo)
@@ -5540,7 +5542,7 @@ static const struct message WmInvalidateErasePaint2[] = {
{ WM_PAINT, sent },
{ WM_NCPAINT, sent|beginpaint },
{ WM_GETTEXT, sent|beginpaint|defwinproc|optional },
- { WM_ERASEBKGND, sent|beginpaint },
+ { WM_ERASEBKGND, sent|beginpaint|optional },
{ 0 }
};
@@ -5595,7 +5597,7 @@ static const struct message WmParentPaintNc[] = {
{ WM_PAINT, sent },
{ WM_NCPAINT, sent|beginpaint },
{ WM_GETTEXT, sent|beginpaint|defwinproc|optional },
- { WM_ERASEBKGND, sent|beginpaint },
+ { WM_ERASEBKGND, sent|beginpaint|optional },
{ 0 }
};
@@ -5611,7 +5613,7 @@ static const struct message WmParentErasePaint[] = {
{ WM_PAINT, sent|parent },
{ WM_NCPAINT, sent|parent|beginpaint },
{ WM_GETTEXT, sent|parent|beginpaint|defwinproc|optional },
- { WM_ERASEBKGND, sent|parent|beginpaint },
+ { WM_ERASEBKGND, sent|parent|beginpaint|optional },
{ WM_PAINT, sent },
{ WM_NCPAINT, sent|beginpaint },
{ WM_GETTEXT, sent|beginpaint|defwinproc|optional },
@@ -6806,9 +6808,11 @@ static LRESULT MsgCheckProc (BOOL unicode, HWND hwnd, UINT message,
/* test_accelerators() depends on this */
case WM_NCHITTEST:
return HTCLIENT;
-
+
/* ignore */
case WM_MOUSEMOVE:
+ case WM_MOUSEACTIVATE:
+ case WM_NCMOUSEMOVE:
case WM_SETCURSOR:
case WM_DEVICECHANGE:
return 0;
@@ -9732,9 +9736,9 @@ static const struct message WmShow[] = {
};
static const struct message WmShowNoActivate_1[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWNOACTIVATE },
- { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_MOVE, sent|defwinproc },
+ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_SHOWWINDOW|SWP_NOACTIVATE|SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_MOVE, sent|defwinproc|optional },
{ WM_SIZE, sent|wparam|defwinproc, SIZE_RESTORED },
{ 0 }
};
@@ -9797,17 +9801,19 @@ static const struct message WmRestore_3[] = {
};
static const struct message WmRestore_4[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_RESTORE },
- { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_MOVE, sent|defwinproc },
+ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_MOVE, sent|defwinproc|optional },
{ WM_SIZE, sent|wparam|defwinproc, SIZE_RESTORED },
{ 0 }
};
static const struct message WmRestore_5[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWNORMAL },
- { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_MOVE, sent|defwinproc },
+ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { HCBT_ACTIVATE, hook|optional },
+ { HCBT_SETFOCUS, hook|optional },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_MOVE, sent|defwinproc|optional },
{ WM_SIZE, sent|wparam|defwinproc, SIZE_RESTORED },
{ 0 }
};
@@ -9881,6 +9887,15 @@ static const struct message WmMinMax_1[] = {
};
static const struct message WmMinMax_2[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWMAXIMIZED },
+ { WM_GETMINMAXINFO, sent|optional },
+ { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_FRAMECHANGED|SWP_STATECHANGED },
+ { HCBT_ACTIVATE, hook|optional },
+ { WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE },
+ { HCBT_SETFOCUS, hook|optional },
+ { WM_WINDOWPOSCHANGED, sent|wparam|optional, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE },
+ { WM_MOVE, sent|defwinproc|optional },
+ { WM_SIZE, sent|wparam|defwinproc|optional, SIZE_MAXIMIZED },
+ { HCBT_SETFOCUS, hook|optional },
{ 0 }
};
static const struct message WmMinMax_3[] = {
@@ -9923,12 +9938,12 @@ static const struct message WmShowMaximized_2[] = {
static const struct message WmShowMaximized_3[] = {
{ HCBT_MINMAX, hook|lparam, 0, SW_SHOWMAXIMIZED },
{ WM_GETMINMAXINFO, sent },
- { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
+ { WM_WINDOWPOSCHANGING, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
{ HCBT_ACTIVATE, hook|optional }, /* win2000 doesn't send it */
{ WM_WINDOWPOSCHANGING, sent|wparam|optional, SWP_NOSIZE|SWP_NOMOVE }, /* win2000 doesn't send it */
{ HCBT_SETFOCUS, hook|optional }, /* win2000 doesn't send it */
- { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED },
- { WM_MOVE, sent|defwinproc },
+ { WM_WINDOWPOSCHANGED, sent|wparam, SWP_FRAMECHANGED|SWP_STATECHANGED, 0, SWP_NOCLIENTSIZE|SWP_NOCLIENTMOVE|SWP_NOSIZE|SWP_NOMOVE },
+ { WM_MOVE, sent|defwinproc|optional },
{ WM_SIZE, sent|wparam|defwinproc, SIZE_MAXIMIZED },
{ 0 }
};
More information about the wine-cvs
mailing list