diff --git a/dlls/user/tests/sysparams.c b/dlls/user/tests/sysparams.c index ace28e6c227..13362d81a71 100644 --- a/dlls/user/tests/sysparams.c +++ b/dlls/user/tests/sysparams.c @@ -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 action, int optional ) 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 ) /* 2 */ 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 ) /* 4 */ 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 ) /* 6 */ 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( void ) /* 10 */ 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 32 ? old_spacing-1 : 32); @@ -605,8 +643,10 @@ static void test_SPI_SETSCREENSAVETIMEOUT( void ) /* 14 */ 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