[1/3] shell32/tests: MSDN says ShellExecute() == 32 indicates an
error. So fix the tests.
Francois Gouget
fgouget at codeweavers.com
Wed Dec 13 11:05:45 CST 2006
ShellExecute() may also return 0 as an error, so use 33 to denote success in our tests.
Also reorder the fields in filename_tests_t to make future extensions easier.
---
Putting the todo field before the rc field makes it possible to add more
rc fields later with a logical ordering (e.g. for FindExecutable(),
though in the end it turned out to not be needed :-/).
dlls/shell32/tests/shlexec.c | 86 +++++++++++++++++++++---------------------
1 files changed, 43 insertions(+), 43 deletions(-)
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index bed6fd8..add8648 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -109,7 +109,7 @@ static int shell_execute(LPCSTR operation, LPCSTR file, LPCSTR parameters, LPCST
rc=(int)ShellExecute(NULL, operation, file, parameters, directory,
SW_SHOWNORMAL);
- if (rc>=32)
+ if (rc > 32)
{
int wait_rc;
wait_rc=WaitForSingleObject(hEvent, 5000);
@@ -119,7 +119,7 @@ static int shell_execute(LPCSTR operation, LPCSTR file, LPCSTR parameters, LPCST
* functions know about it
*/
WritePrivateProfileStringA(NULL, NULL, NULL, child_file);
- if (rc>=32)
+ if (rc > 32)
dump_child();
return rc;
@@ -164,10 +164,10 @@ static int shell_execute_ex(DWORD mask, LPCSTR operation, LPCSTR file,
SetLastError(0xcafebabe);
success=ShellExecuteEx(&sei);
rc=(int)sei.hInstApp;
- ok((success && rc >= 32) || (!success && rc < 32),
+ ok((success && rc > 32) || (!success && rc <= 32),
"%s rc=%d and hInstApp=%d is not allowed\n", shell_call, success, rc);
- if (rc>=32)
+ if (rc > 32)
{
int wait_rc;
if (sei.hProcess!=NULL)
@@ -182,7 +182,7 @@ static int shell_execute_ex(DWORD mask, LPCSTR operation, LPCSTR file,
* functions know about it
*/
WritePrivateProfileStringA(NULL, NULL, NULL, child_file);
- if (rc>=32)
+ if (rc > 32)
dump_child();
return rc;
@@ -477,47 +477,47 @@ typedef struct
{
const char* verb;
const char* basename;
- int rc;
int todo;
+ int rc;
} filename_tests_t;
static filename_tests_t filename_tests[]=
{
/* Test bad / nonexistent filenames */
- {NULL, "%s\\nonexistent.shlexec", ERROR_FILE_NOT_FOUND, 0x1},
- {NULL, "%s\\nonexistent.noassoc", ERROR_FILE_NOT_FOUND, 0x1},
+ {NULL, "%s\\nonexistent.shlexec", 0x1, ERROR_FILE_NOT_FOUND},
+ {NULL, "%s\\nonexistent.noassoc", 0x1, ERROR_FILE_NOT_FOUND},
/* Standard tests */
- {NULL, "%s\\test file.shlexec", 0, 0x0},
- {NULL, "%s\\test file.shlexec.", 0, 0x0},
- {NULL, "%s\\%%nasty%% $file.shlexec", 0, 0x0},
- {NULL, "%s/test file.shlexec", 0, 0x0},
+ {NULL, "%s\\test file.shlexec", 0x0, 33},
+ {NULL, "%s\\test file.shlexec.", 0x0, 33},
+ {NULL, "%s\\%%nasty%% $file.shlexec", 0x0, 33},
+ {NULL, "%s/test file.shlexec", 0x0, 33},
/* Test filenames with no association */
- {NULL, "%s\\test file.noassoc", SE_ERR_NOASSOC, 0x0},
+ {NULL, "%s\\test file.noassoc", 0x0, SE_ERR_NOASSOC},
/* Test double extensions */
- {NULL, "%s\\test file.noassoc.shlexec", 0, 0},
- {NULL, "%s\\test file.shlexec.noassoc", SE_ERR_NOASSOC, 0x0},
+ {NULL, "%s\\test file.noassoc.shlexec", 0x0, 33},
+ {NULL, "%s\\test file.shlexec.noassoc", 0x0, SE_ERR_NOASSOC},
/* Test alternate verbs */
- {"LowerL", "%s\\nonexistent.shlexec", ERROR_FILE_NOT_FOUND, 0x1},
- {"LowerL", "%s\\test file.noassoc", SE_ERR_NOASSOC, 0x0},
+ {"LowerL", "%s\\nonexistent.shlexec", 0x1, ERROR_FILE_NOT_FOUND},
+ {"LowerL", "%s\\test file.noassoc", 0x0, SE_ERR_NOASSOC},
- {"QuotedLowerL", "%s\\test file.shlexec", 0, 0x0},
- {"QuotedUpperL", "%s\\test file.shlexec", 0, 0x0},
+ {"QuotedLowerL", "%s\\test file.shlexec", 0x0, 33},
+ {"QuotedUpperL", "%s\\test file.shlexec", 0x0, 33},
- {NULL, NULL, 0, 0}
+ {NULL, NULL, 0}
};
static filename_tests_t noquotes_tests[]=
{
/* Test unquoted '%1' thingies */
- {"NoQuotes", "%s\\test file.shlexec", 0, 0xa},
- {"LowerL", "%s\\test file.shlexec", 0, 0x0},
- {"UpperL", "%s\\test file.shlexec", 0, 0x0},
+ {"NoQuotes", "%s\\test file.shlexec", 0xa, 33},
+ {"LowerL", "%s\\test file.shlexec", 0xa, 33},
+ {"UpperL", "%s\\test file.shlexec", 0xa, 33},
- {NULL, NULL, 0, 0}
+ {NULL, NULL, 0}
};
static void test_filename(void)
@@ -542,8 +542,8 @@ static void test_filename(void)
}
}
rc=shell_execute(test->verb, filename, NULL, NULL);
- if (rc>=32)
- rc=0;
+ if (rc > 32)
+ rc=33;
if ((test->todo & 0x1)==0)
{
ok(rc==test->rc, "%s failed: rc=%d err=%d\n", shell_call,
@@ -554,7 +554,7 @@ static void test_filename(void)
ok(rc==test->rc, "%s failed: rc=%d err=%d\n", shell_call,
rc, GetLastError());
}
- if (rc==0)
+ if (rc == 33)
{
const char* verb;
if ((test->todo & 0x2)==0)
@@ -591,8 +591,8 @@ static void test_filename(void)
{
sprintf(filename, test->basename, tmpdir);
rc=shell_execute(test->verb, filename, NULL, NULL);
- if (rc>=32)
- rc=0;
+ if (rc > 32)
+ rc=33;
if ((test->todo & 0x1)==0)
{
ok(rc==test->rc, "%s failed: rc=%d err=%d\n", shell_call,
@@ -664,7 +664,7 @@ static void test_filename(void)
*/
sprintf(filename, "\"%s\\test file.shlexec\"", tmpdir);
rc=shell_execute(NULL, filename, NULL, NULL);
- ok(rc>=32, "%s failed: rc=%d err=%d\n", shell_call, rc,
+ ok(rc > 32, "%s failed: rc=%d err=%d\n", shell_call, rc,
GetLastError());
okChildInt("argcA", 5);
okChildString("argvA3", "Open");
@@ -677,17 +677,17 @@ static void test_filename(void)
static filename_tests_t lnk_tests[]=
{
/* Pass bad / nonexistent filenames as a parameter */
- {NULL, "%s\\nonexistent.shlexec", 0, 0xa},
- {NULL, "%s\\nonexistent.noassoc", 0, 0xa},
+ {NULL, "%s\\nonexistent.shlexec", 0xa, 33},
+ {NULL, "%s\\nonexistent.noassoc", 0xa, 33},
/* Pass regular paths as a parameter */
- {NULL, "%s\\test file.shlexec", 0, 0xa},
- {NULL, "%s/%%nasty%% $file.shlexec", 0, 0xa},
+ {NULL, "%s\\test file.shlexec", 0xa, 33},
+ {NULL, "%s/%%nasty%% $file.shlexec", 0xa, 33},
/* Pass filenames with no association as a parameter */
- {NULL, "%s\\test file.noassoc", 0, 0xa},
+ {NULL, "%s\\test file.noassoc", 0xa, 33},
- {NULL, NULL, 0, 0}
+ {NULL, NULL, 0}
};
static void test_lnks(void)
@@ -699,7 +699,7 @@ static void test_lnks(void)
sprintf(filename, "%s\\test_shortcut_shlexec.lnk", tmpdir);
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, NULL, NULL);
- ok(rc>=32, "%s failed: rc=%d err=%d\n", shell_call, rc,
+ ok(rc > 32, "%s failed: rc=%d err=%d\n", shell_call, rc,
GetLastError());
okChildInt("argcA", 5);
okChildString("argvA3", "Open");
@@ -708,7 +708,7 @@ static void test_lnks(void)
sprintf(filename, "%s\\test_shortcut_exe.lnk", tmpdir);
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, NULL, NULL);
- ok(rc>=32, "%s failed: rc=%d err=%d\n", shell_call, rc,
+ ok(rc > 32, "%s failed: rc=%d err=%d\n", shell_call, rc,
GetLastError());
okChildInt("argcA", 4);
okChildString("argvA3", "Lnk");
@@ -728,7 +728,7 @@ static void test_lnks(void)
c++;
}
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, NULL, NULL);
- ok(rc>=32, "%s failed: rc=%d err=%d\n", shell_call, rc,
+ ok(rc > 32, "%s failed: rc=%d err=%d\n", shell_call, rc,
GetLastError());
okChildInt("argcA", 4);
okChildString("argvA3", "Lnk");
@@ -743,8 +743,8 @@ static void test_lnks(void)
strcat(params,"\"");
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, params,
NULL);
- if (rc>=32)
- rc=0;
+ if (rc > 32)
+ rc=33;
if ((test->todo & 0x1)==0)
{
ok(rc==test->rc, "%s failed: rc=%d err=%d\n", shell_call,
@@ -799,7 +799,7 @@ static void test_exes(void)
/* We need NOZONECHECKS on Win2003 to block a dialog */
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, argv0, params,
NULL);
- ok(rc>=32, "%s returned %d\n", shell_call, rc);
+ ok(rc > 32, "%s returned %d\n", shell_call, rc);
okChildInt("argcA", 4);
okChildString("argvA3", "Exec");
@@ -830,7 +830,7 @@ static void test_exes_long(void)
/* We need NOZONECHECKS on Win2003 to block a dialog */
rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, argv0, params,
NULL);
- ok(rc>=32, "%s returned %d\n", shell_call, rc);
+ ok(rc > 32, "%s returned %d\n", shell_call, rc);
okChildInt("argcA", 4);
okChildString("argvA3", longparam);
--
1.4.4.1
More information about the wine-patches
mailing list