On Sat, 2005-03-05 at 06:42, [EMAIL PROTECTED] wrote:
> As discussed on wine-devel there are a handful of calls in the 
> SystemParametersInfo tests that don't check for returned errors and continue 
> on with testing a given parameter. This patch ensures that all initial calls 
> to SystemParametersInfoA in each parameter test have their returned errors 
> checked. To ease adding more error cases and reduce code duplication I have 
> consolidated error message handling into a single function.
> 
> Changelog:
> 
> * Consolidate error message handling
> * Add error checking to all initial SystemParametersInfoA calls in each 
> parameter test to make sure that if a given parameter isn't supported or has 
> failed in some other way that we return and don't continue on with the test
> * Remove a couple of TABS and align registry keys/values at the top of the 
> file
Hi Justin,

what about the attached one? Added/changed the following:

- Always set LastError before calling test_error_msg
- SPI_{GET,SET}ICONTITLEWRAP is supported on Win98, but was clouded by
an error that was set after a previous call failed.

Changelog:
Justin Chevrier <[EMAIL PROTECTED]>
 
* Consolidate error message handling
* Add error checking to all initial SystemParametersInfoA calls in each 
parameter test to make sure that if a given parameter isn't supported or
has failed in some other way that we return and don't continue on with
the test
* SetLastError before calling test_error_msg
* Remove a couple of TABS and align registry keys/values at the top of
the file
* SPI_{GET,SET}ICONTITLEWRAP is supported on Win98

Cheers,

Paul.
Index: dlls/user/tests/sysparams.c
===================================================================
RCS file: /home/wine/wine/dlls/user/tests/sysparams.c,v
retrieving revision 1.33
diff -u -p -r1.33 sysparams.c
--- dlls/user/tests/sysparams.c	4 Mar 2005 12:31:09 -0000	1.33
+++ dlls/user/tests/sysparams.c	5 Mar 2005 10:21:10 -0000
@@ -41,14 +41,14 @@ static int strict;
         ok((received) == (expected), "%s: got " type " instead of " type "\n", (label),(received),(expected))
 
 
-#define SPI_SETBEEP_REGKEY           "Control Panel\\Sound"
-#define SPI_SETBEEP_VALNAME          "Beep"
-#define SPI_SETMOUSE_REGKEY             "Control Panel\\Mouse"
-#define SPI_SETMOUSE_VALNAME1           "MouseThreshold1"
-#define SPI_SETMOUSE_VALNAME2           "MouseThreshold2"
-#define SPI_SETMOUSE_VALNAME3           "MouseSpeed"
-#define SPI_SETBORDER_REGKEY         "Control Panel\\Desktop\\WindowMetrics"
-#define SPI_SETBORDER_VALNAME        "BorderWidth"
+#define SPI_SETBEEP_REGKEY                      "Control Panel\\Sound"
+#define SPI_SETBEEP_VALNAME                     "Beep"
+#define SPI_SETMOUSE_REGKEY                     "Control Panel\\Mouse"
+#define SPI_SETMOUSE_VALNAME1                   "MouseThreshold1"
+#define SPI_SETMOUSE_VALNAME2                   "MouseThreshold2"
+#define SPI_SETMOUSE_VALNAME3                   "MouseSpeed"
+#define SPI_SETBORDER_REGKEY                    "Control Panel\\Desktop\\WindowMetrics"
+#define SPI_SETBORDER_VALNAME                   "BorderWidth"
 #define SPI_SETKEYBOARDSPEED_REGKEY             "Control Panel\\Keyboard"
 #define SPI_SETKEYBOARDSPEED_VALNAME            "KeyboardSpeed"
 #define SPI_SETSCREENSAVETIMEOUT_REGKEY         "Control Panel\\Desktop"
@@ -77,14 +77,14 @@ static int strict;
 #define SPI_SETMOUSEBUTTONSWAP_VALNAME          "SwapMouseButtons"
 #define SPI_SETWORKAREA_REGKEY                  "Control Panel\\Desktop"
 #define SPI_SETWORKAREA_VALNAME                 "WINE_WorkArea"
-#define SPI_SETSHOWSOUNDS_REGKEY        "Control Panel\\Accessibility\\ShowSounds"
-#define SPI_SETSHOWSOUNDS_VALNAME       "On"
-#define SPI_SETKEYBOARDPREF_REGKEY      "Control Panel\\Accessibility\\Keyboard Preference"
-#define SPI_SETKEYBOARDPREF_VALNAME     "On"
-#define SPI_SETKEYBOARDPREF_REGKEY_LEGACY      "Control Panel\\Accessibility"
-#define SPI_SETKEYBOARDPREF_VALNAME_LEGACY     "Keyboard Preference"
-#define SPI_SETSCREENREADER_REGKEY      "Control Panel\\Accessibility\\Blind Access"
-#define SPI_SETSCREENREADER_VALNAME     "On"
+#define SPI_SETSHOWSOUNDS_REGKEY                "Control Panel\\Accessibility\\ShowSounds"
+#define SPI_SETSHOWSOUNDS_VALNAME               "On"
+#define SPI_SETKEYBOARDPREF_REGKEY              "Control Panel\\Accessibility\\Keyboard Preference"
+#define SPI_SETKEYBOARDPREF_VALNAME             "On"
+#define SPI_SETKEYBOARDPREF_REGKEY_LEGACY       "Control Panel\\Accessibility"
+#define SPI_SETKEYBOARDPREF_VALNAME_LEGACY      "Keyboard Preference"
+#define SPI_SETSCREENREADER_REGKEY              "Control Panel\\Accessibility\\Blind Access"
+#define SPI_SETSCREENREADER_VALNAME             "On"
 #define SPI_SETSCREENREADER_REGKEY_LEGACY       "Control Panel\\Accessibility"
 #define SPI_SETSCREENREADER_VALNAME_LEGACY      "Blind Access"
 #define SPI_SETLOWPOWERACTIVE_REGKEY            "Control Panel\\Desktop"
@@ -103,8 +103,8 @@ static int strict;
 #define SPI_SETMOUSESCROLLLINES_VALNAME         "WheelScrollLines"
 #define SPI_SETMENUSHOWDELAY_REGKEY             "Control Panel\\Desktop"
 #define SPI_SETMENUSHOWDELAY_VALNAME            "MenuShowDelay"
-#define SPI_SETDESKWALLPAPER_REGKEY		"Control Panel\\Desktop"
-#define SPI_SETDESKWALLPAPER_VALNAME		"Wallpaper"
+#define SPI_SETDESKWALLPAPER_REGKEY             "Control Panel\\Desktop"
+#define SPI_SETDESKWALLPAPER_VALNAME            "Wallpaper"
 
 /* volatile registry branch under CURRENT_USER_REGKEY for temporary values storage */
 #define WINE_CURRENT_USER_REGKEY     "Wine"
@@ -160,6 +160,34 @@ static void test_change_message( int act
     change_last_param = 0;
 }
 
+static BOOL test_error_msg ( int rc, char *name )
+{
+    DWORD last_error = GetLastError();
+
+    if (rc==0)
+    {
+        if (last_error==0xdeadbeef || last_error==ERROR_INVALID_SPI_VALUE)
+        {
+            trace("%s not supported on this platform. Skipping test\n", name);
+        }
+        else if (last_error==ERROR_ACCESS_DENIED)
+        {
+            trace("%s does not have privileges to run. Skipping test\n", name);
+        }
+        else
+        {
+            trace("%s failed for reason: %ld. Indicating test failure and skipping remainder of test\n",name,last_error);
+            ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,last_error);
+        }
+        return FALSE;
+    }
+    else
+    {
+        ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,last_error);
+        return TRUE;
+    }
+}
+
 /*
  * Tests the HKEY_CURRENT_USER subkey value.
  * The value should contain string value.
@@ -274,8 +302,10 @@ static void test_SPI_SETBEEP( void )    
     BOOL curr_val;
 
     trace("testing SPI_{GET,SET}BEEP\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETBEEP, 0, &old_b, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}BEEP"))
+        return;
 
     curr_val = TRUE;
     rc=SystemParametersInfoA( SPI_SETBEEP, curr_val, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
@@ -425,8 +455,10 @@ static void test_SPI_SETMOUSE( void )   
     int nchange = sizeof( req_change ) / sizeof( POINT );
 
     trace("testing SPI_{GET,SET}MOUSE\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMOUSE, 0, old_mi, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}MOUSE"))
+        return;
 
     run_spi_setmouse_test( curr_val, req_change, proj_change1, nchange );
 
@@ -505,8 +537,10 @@ static void test_SPI_SETBORDER( void )  
         return;
 
     trace("testing SPI_{GET,SET}BORDER\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETBORDER, 0, &old_border, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}BORDER"))
+        return;
 
     test_setborder(1);
     test_setborder(0);
@@ -530,8 +564,10 @@ static void test_SPI_SETKEYBOARDSPEED( v
     unsigned int i;
 
     trace("testing SPI_{GET,SET}KEYBOARDSPEED\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETKEYBOARDSPEED, 0, &old_speed, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}KEYBOARDSPEED"))
+        return;
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -562,9 +598,11 @@ static void test_SPI_ICONHORIZONTALSPACI
     INT curr_val;
 
     trace("testing SPI_ICONHORIZONTALSPACING\n");
+    SetLastError(0xdeadbeef);
     /* default value: 75 */
     rc=SystemParametersInfoA( SPI_ICONHORIZONTALSPACING, 0, &old_spacing, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_ICONHORIZONTALSPACING"))
+        return;
 
     /* do not increase the value as it would upset the user's icon layout */
     curr_val = (old_spacing > 32 ? old_spacing-1 : 32);
@@ -605,8 +643,10 @@ static void test_SPI_SETSCREENSAVETIMEOU
     unsigned int i;
 
     trace("testing SPI_{GET,SET}SCREENSAVETIMEOUT\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETSCREENSAVETIMEOUT, 0, &old_timeout, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}SCREENSAVETIMEOUT"))
+        return;
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -639,8 +679,10 @@ static void test_SPI_SETSCREENSAVEACTIVE
     unsigned int i;
 
     trace("testing SPI_{GET,SET}SCREENSAVEACTIVE\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETSCREENSAVEACTIVE, 0, &old_b, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}SCREENSAVEACTIVE"))
+        return;
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -676,8 +718,10 @@ static void test_SPI_SETKEYBOARDDELAY( v
     unsigned int i;
 
     trace("testing SPI_{GET,SET}KEYBOARDDELAY\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETKEYBOARDDELAY, 0, &old_delay, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}KEYBOARDDELAY"))
+        return;
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -709,9 +753,11 @@ static void test_SPI_ICONVERTICALSPACING
     INT curr_val;
 
     trace("testing SPI_ICONVERTICALSPACING\n");
+    SetLastError(0xdeadbeef);
     /* default value: 75 */
     rc=SystemParametersInfoA( SPI_ICONVERTICALSPACING, 0, &old_spacing, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_ICONVERTICALSPACING"))
+        return;
 
     /* do not increase the value as it would upset the user's icon layout */
     curr_val = old_spacing-1;
@@ -760,15 +806,10 @@ static void test_SPI_SETICONTITLEWRAP( v
         return;
 
     trace("testing SPI_{GET,SET}ICONTITLEWRAP\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETICONTITLEWRAP, 0, &old_b, 0 );
-
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_CALL_NOT_IMPLEMENTED))
-    {
-        /* SPI_{GET,SET}ICONTITLEWRAP is not implemented on a standard Win98 SE */
-        trace("SPI_{GET,SET}ICONTITLEWRAP not supported on this platform\n");
+    if (!test_error_msg(rc,"SPI_{GET,SET}ICONTITLEWRAP"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -800,8 +841,10 @@ static void test_SPI_SETMENUDROPALIGNMEN
     unsigned int i;
 
     trace("testing SPI_{GET,SET}MENUDROPALIGNMENT\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMENUDROPALIGNMENT, 0, &old_b, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}MENUDROPALIGNMENT"))
+        return;
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -842,9 +885,12 @@ static void test_SPI_SETDOUBLECLKWIDTH( 
     {
         char buf[10];
 
+        SetLastError(0xdeadbeef);
         rc=SystemParametersInfoA( SPI_SETDOUBLECLKWIDTH, vals[i], 0,
                                   SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
-        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());
+        if (!test_error_msg(rc,"SPI_{GET,SET}DOUBLECLKWIDTH"))
+            return;
+
         test_change_message( SPI_SETDOUBLECLKWIDTH, 0 );
         sprintf( buf, "%d", vals[i] );
         test_reg_key_ex( SPI_SETDOUBLECLKWIDTH_REGKEY1,
@@ -873,9 +919,12 @@ static void test_SPI_SETDOUBLECLKHEIGHT(
     {
         char buf[10];
 
+        SetLastError(0xdeadbeef);
         rc=SystemParametersInfoA( SPI_SETDOUBLECLKHEIGHT, vals[i], 0,
                                   SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
-        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());
+        if (!test_error_msg(rc,"SPI_{GET,SET}DOUBLECLKHEIGHT"))
+            return;
+
         test_change_message( SPI_SETDOUBLECLKHEIGHT, 0 );
         sprintf( buf, "%d", vals[i] );
         test_reg_key_ex( SPI_SETDOUBLECLKHEIGHT_REGKEY1,
@@ -902,9 +951,12 @@ static void test_SPI_SETDOUBLECLICKTIME(
     old_time = GetDoubleClickTime();
 
     curr_val = 0;
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_SETDOUBLECLICKTIME, curr_val, 0,
                               SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}DOUBLECLICKTIME"))
+        return;
+
     test_change_message( SPI_SETDOUBLECLICKTIME, 0 );
     sprintf( buf, "%d", curr_val );
     test_reg_key( SPI_SETDOUBLECLICKTIME_REGKEY,
@@ -955,9 +1007,12 @@ static void test_SPI_SETMOUSEBUTTONSWAP(
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
+        SetLastError(0xdeadbeef);
         rc=SystemParametersInfoA( SPI_SETMOUSEBUTTONSWAP, vals[i], 0,
                                   SPIF_UPDATEINIFILE | SPIF_SENDCHANGE );
-        ok(rc!=0,"%d: rc=%d err=%ld\n",i,rc,GetLastError());
+        if (!test_error_msg(rc,"SPI_{GET,SET}MOUSEBUTTONSWAP"))
+            return;
+            
         test_change_message( SPI_SETMOUSEBUTTONSWAP, 0 );
         test_reg_key( SPI_SETMOUSEBUTTONSWAP_REGKEY,
                       SPI_SETMOUSEBUTTONSWAP_VALNAME,
@@ -977,8 +1032,11 @@ static void test_SPI_SETFASTTASKSWITCH( 
     BOOL v;
 
     trace("testing SPI_GETFASTTASKSWITCH\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETFASTTASKSWITCH, 0, &v, 0 );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}FASTTASKSWITCH"))
+        return;
+
     /* there is not a single Windows platform on which SPI_GETFASTTASKSWITCH
      * works. That sure simplifies testing!
      */
@@ -992,14 +1050,12 @@ static void test_SPI_SETDRAGFULLWINDOWS(
     unsigned int i;
 
     trace("testing SPI_{GET,SET}DRAGFULLWINDOWS\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETDRAGFULLWINDOWS, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_CALL_NOT_IMPLEMENTED))
-    {
-        /* SPI_{GET,SET}DRAGFULLWINDOWS is not implemented on Win95 */
-        trace("SPI_{GET,SET}DRAGFULLWINDOWS not supported on this platform\n");
+
+    /* SPI_{GET,SET}DRAGFULLWINDOWS is not implemented on Win95 */
+    if (!test_error_msg(rc,"SPI_{GET,SET}DRAGFULLWINDOWS"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1034,8 +1090,10 @@ static void test_SPI_SETMINIMIZEDMETRICS
     lpMm_cur.cbSize = sizeof(MINIMIZEDMETRICS);
 
     trace("testing SPI_{GET,SET}MINIMIZEDMETRICS\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), &lpMm_orig, FALSE );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}MINIMIZEDMETRICS"))
+        return;
 
     lpMm_cur.iWidth = 180;
     lpMm_cur.iHorzGap = 1;
@@ -1086,8 +1144,10 @@ static void test_SPI_SETICONMETRICS( voi
     im_cur.cbSize = sizeof(ICONMETRICSA);
 
     trace("testing SPI_{GET,SET}ICONMETRICS\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETICONMETRICS, sizeof(ICONMETRICSA), &im_orig, FALSE );
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}ICONMETRICS"))
+        return;
 
     im_cur.iHorzSpacing = 65;
     im_cur.iVertSpacing = 65;
@@ -1152,13 +1212,15 @@ static void test_SPI_SETWORKAREA( void )
     RECT curr_val;
 
     trace("testing SPI_{GET,SET}WORKAREA\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA(SPI_GETWORKAREA, 0, &old_area, 0);
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
+    if (!test_error_msg(rc,"SPI_{GET,SET}WORKAREA"))
+        return;
 
     /* Modify the work area only minimally as this causes the icons that
      * fall outside it to be moved around thus requiring the user to
      * reposition them manually one by one.
-     * Changing the work area by just one pixel should make this occurrence
+     * Changing the work area by just one pixel should make this occurence
      * reasonably unlikely.
      */
     curr_val.left = old_area.left;
@@ -1196,15 +1258,11 @@ static void test_SPI_SETSHOWSOUNDS( void
     unsigned int i;
 
     trace("testing SPI_{GET,SET}SHOWSOUNDS\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETSHOWSOUNDS, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}SHOWSOUNDS is completely broken on Win9x */
-        trace("SPI_{GET,SET}SHOWSOUNDS not supported on this platform\n");
+    /* SPI_{GET,SET}SHOWSOUNDS is completely broken on Win9x */
+    if (!test_error_msg(rc,"SPI_{GET,SET}SHOWSOUNDS"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1237,14 +1295,10 @@ static void test_SPI_SETKEYBOARDPREF( vo
     unsigned int i;
 
     trace("testing SPI_{GET,SET}KEYBOARDPREF\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETKEYBOARDPREF, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        trace("SPI_{GET,SET}KEYBOARDPREF not supported on this platform\n");
+    if (!test_error_msg(rc,"SPI_{GET,SET}KEYBOARDPREF"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1275,14 +1329,10 @@ static void test_SPI_SETSCREENREADER( vo
     unsigned int i;
 
     trace("testing SPI_{GET,SET}SCREENREADER\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETSCREENREADER, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        trace("SPI_{GET,SET}SCREENREADER not supported on this platform\n");
+    if (!test_error_msg(rc,"SPI_{GET,SET}SCREENREADER"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1313,14 +1363,10 @@ static void test_SPI_SETLOWPOWERACTIVE( 
     unsigned int i;
 
     trace("testing SPI_{GET,SET}LOWPOWERACTIVE\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETLOWPOWERACTIVE, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        trace("SPI_{GET,SET}LOWPOWERACTIVE not supported on this platform\n");
+    if (!test_error_msg(rc,"SPI_{GET,SET}LOWPOWERACTIVE"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1351,14 +1397,10 @@ static void test_SPI_SETPOWEROFFACTIVE( 
     unsigned int i;
 
     trace("testing SPI_{GET,SET}POWEROFFACTIVE\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETPOWEROFFACTIVE, 0, &old_b, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        trace("SPI_{GET,SET}POWEROFFACTIVE not supported on this platform\n");
+    if (!test_error_msg(rc,"SPI_{GET,SET}POWEROFFACTIVE"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1389,16 +1431,13 @@ static void test_SPI_SETMOUSEHOVERWIDTH(
     unsigned int i;
 
     trace("testing SPI_{GET,SET}MOUSEHOVERWIDTH\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMOUSEHOVERWIDTH, 0, &old_width, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
-         * what MSDN states (Verified on Win98SE)
-         */
-        trace("SPI_{GET,SET}MOUSEHOVERWIDTH not supported on this platform\n");
+    /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
+    * what MSDN states (Verified on Win98SE)
+    */
+    if (!test_error_msg(rc,"SPI_{GET,SET}MOUSEHOVERWIDTH"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
     
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1431,16 +1470,13 @@ static void test_SPI_SETMOUSEHOVERHEIGHT
     unsigned int i;
 
     trace("testing SPI_{GET,SET}MOUSEHOVERHEIGHT\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMOUSEHOVERHEIGHT, 0, &old_height, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
-         * what MSDN states (Verified on Win98SE)
-         */
-        trace("SPI_{GET,SET}MOUSEHOVERHEIGHT not supported on this platform\n");
+    /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
+     * what MSDN states (Verified on Win98SE)
+     */
+    if (!test_error_msg(rc,"SPI_{GET,SET}MOUSEHOVERHEIGHT"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
     
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1477,16 +1513,13 @@ static void test_SPI_SETMOUSEHOVERTIME( 
     unsigned int i;
 
     trace("testing SPI_{GET,SET}MOUSEHOVERTIME\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMOUSEHOVERTIME, 0, &old_time, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
-         * what MSDN states (Verified on Win98SE)
-         */
-        trace("SPI_{GET,SET}MOUSEHOVERTIME not supported on this platform\n");
+    /* SPI_{GET,SET}MOUSEHOVERWIDTH does not seem to be supported on Win9x despite
+     * what MSDN states (Verified on Win98SE)
+     */    
+    if (!test_error_msg(rc,"SPI_{GET,SET}MOUSEHOVERTIME"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
     
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1519,14 +1552,12 @@ static void test_SPI_SETWHEELSCROLLLINES
     unsigned int i;
 
     trace("testing SPI_{GET,SET}WHEELSCROLLLINES\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETWHEELSCROLLLINES, 0, &old_lines, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}WHEELSCROLLLINES not supported on Windows 95 */
-        trace("SPI_{GET,SET}WHEELSCROLLLINES not supported on this platform\n");
+
+    /* SPI_{GET,SET}WHEELSCROLLLINES not supported on Windows 95 */
+    if (!test_error_msg(rc,"SPI_{GET,SET}WHEELSCROLLLINES"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1559,14 +1590,12 @@ static void test_SPI_SETMENUSHOWDELAY( v
     unsigned int i;
 
     trace("testing SPI_{GET,SET}MENUSHOWDELAY\n");
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA( SPI_GETMENUSHOWDELAY, 0, &old_delay, 0 );
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}MENUSHOWDELAY not supported on Windows 95 */
-        trace("SPI_{GET,SET}MENUSHOWDELAY not supported on this platform\n");
+
+    /* SPI_{GET,SET}MENUSHOWDELAY not supported on Windows 95 */
+    if (!test_error_msg(rc,"SPI_{GET,SET}MENUSHOWDELAY"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     for (i=0;i<sizeof(vals)/sizeof(*vals);i++)
     {
@@ -1598,17 +1627,13 @@ static void test_SPI_SETWALLPAPER( void 
     char newval[260];
 
     trace("testing SPI_{GET,SET}DESKWALLPAPER\n");
-    SetLastError(0);
+    SetLastError(0xdeadbeef);
     rc=SystemParametersInfoA(SPI_GETDESKWALLPAPER, 260, oldval, 0);
-    if (rc==0 && (GetLastError()==0 || GetLastError()==ERROR_INVALID_SPI_VALUE))
-    {
-        /* SPI_{GET,SET}DESKWALLPAPER is completely broken on Win9x and
-         * unimplemented on NT4
-         */
-        trace("SPI_{GET,SET}DESKWALLPAPER not supported on this platform\n");
+    /* SPI_{GET,SET}DESKWALLPAPER is completely broken on Win9x and
+     * unimplemented on NT4
+     */
+    if (!test_error_msg(rc,"SPI_{GET,SET}DESKWALLPAPER"))
         return;
-    }
-    ok(rc!=0,"SystemParametersInfoA: rc=%d err=%ld\n",rc,GetLastError());
 
     strcpy(newval, "");
     rc=SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, newval, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);

Reply via email to