Rein Klazes : user32/tests: Avoid a few unneeded test failures in sysparams .c.

Alexandre Julliard julliard at winehq.org
Wed Apr 8 10:05:32 CDT 2009


Module: wine
Branch: master
Commit: 89a170ffa14eb42c8e109a8ad9e86dd6122fdf3c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=89a170ffa14eb42c8e109a8ad9e86dd6122fdf3c

Author: Rein Klazes <wijn at online.nl>
Date:   Tue Apr  7 18:34:44 2009 +0200

user32/tests: Avoid a few unneeded test failures in sysparams.c.

---

 dlls/user32/tests/sysparams.c |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c
index 165226a..73b9a9a 100644
--- a/dlls/user32/tests/sysparams.c
+++ b/dlls/user32/tests/sysparams.c
@@ -156,6 +156,7 @@ static DWORD WINAPI SysParamsThreadFunc( LPVOID lpParam );
 static LRESULT CALLBACK SysParamsTestWndProc( HWND hWnd, UINT msg, WPARAM wParam,
                                               LPARAM lParam );
 static int change_counter;
+static int change_setworkarea_param, change_iconverticalspacing_param;
 static int change_last_param;
 static int last_bpp;
 static BOOL displaychange_ok = FALSE, displaychange_test_active = FALSE;
@@ -176,21 +177,32 @@ static LRESULT CALLBACK SysParamsTestWndProc( HWND hWnd, UINT msg, WPARAM wParam
     case WM_SETTINGCHANGE:
         if (change_counter>0) { 
             /* ignore these messages caused by resizing of toolbars */
-            if( wParam == SPI_SETWORKAREA ||
-                wParam == SPI_ICONVERTICALSPACING ||
-                displaychange_test_active)
+            if( wParam == SPI_SETWORKAREA){
+                change_setworkarea_param = 1;
                 break;
-            if( change_last_param == SPI_SETWORKAREA ||
-                change_last_param == SPI_ICONVERTICALSPACING)
-            {
+            } else if( wParam == SPI_ICONVERTICALSPACING) {
+                change_iconverticalspacing_param = 1;
+                break;
+            } else if( displaychange_test_active)
+                break;
+            if( !change_last_param){
                 change_last_param = wParam;
                 break;
             }
             ok(0,"too many changes counter=%d last change=%d\n",
                change_counter,change_last_param);
+            change_counter++;
+            change_last_param = wParam;
+            break;
         }
         change_counter++;
-        change_last_param = wParam;
+        change_last_param = change_setworkarea_param = change_iconverticalspacing_param =0;
+        if( wParam == SPI_SETWORKAREA)
+            change_setworkarea_param = 1;
+        else if( wParam == SPI_ICONVERTICALSPACING)
+            change_iconverticalspacing_param = 1;
+        else
+            change_last_param = wParam;
         break;
 
     case WM_DESTROY:
@@ -218,7 +230,9 @@ static void test_change_message( int action, int optional )
     ok( 1 == change_counter,
         "Missed a message: change_counter=%d\n", change_counter );
     change_counter = 0;
-    ok( action == change_last_param,
+    ok( action == change_last_param ||
+        ( change_setworkarea_param && action == SPI_SETWORKAREA) ||
+        ( change_iconverticalspacing_param && action == SPI_ICONVERTICALSPACING),
         "Wrong action got %d expected %d\n", change_last_param, action );
     change_last_param = 0;
 }
@@ -1778,20 +1792,22 @@ static void test_SPI_SETWORKAREA( void )               /*     47 */
                               SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
     if (!test_error_msg(rc,"SPI_SETWORKAREA")) return;
     ok(rc!=0,"SystemParametersInfoA: rc=%d err=%d\n",rc,GetLastError());
-    test_change_message( SPI_SETWORKAREA, 0 );
     rc=SystemParametersInfoA( SPI_GETWORKAREA, 0, &area, 0 );
     ok(rc!=0,"SystemParametersInfoA: rc=%d err=%d\n",rc,GetLastError());
+    if( !EqualRect( &area, &curr_val)) /* no message if rect has not changed */
+        test_change_message( SPI_SETWORKAREA, 0);
     eq( area.left,   curr_val.left,   "left",   "%d" );
     eq( area.top,    curr_val.top,    "top",    "%d" );
     eq( area.right,  curr_val.right,  "right",  "%d" );
     eq( area.bottom, curr_val.bottom, "bottom", "%d" );
-
+    curr_val = area;
     rc=SystemParametersInfoA( SPI_SETWORKAREA, 0, &old_area,
                               SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
     ok(rc!=0,"***warning*** failed to restore the original value: rc=%d err=%d\n",rc,GetLastError());
-    test_change_message( SPI_SETWORKAREA, 0 );
     rc=SystemParametersInfoA( SPI_GETWORKAREA, 0, &area, 0 );
     ok(rc!=0,"SystemParametersInfoA: rc=%d err=%d\n",rc,GetLastError());
+    if( !EqualRect( &area, &curr_val)) /* no message if rect has not changed */
+        test_change_message( SPI_SETWORKAREA, 0 );
     eq( area.left,   old_area.left,   "left",   "%d" );
     eq( area.top,    old_area.top,    "top",    "%d" );
     eq( area.right,  old_area.right,  "right",  "%d" );




More information about the wine-cvs mailing list