Module: wine Branch: master Commit: 3e033bb130cfe18595895113a67b593839735fc4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3e033bb130cfe18595895113a6...
Author: Francois Gouget fgouget@codeweavers.com Date: Wed Feb 12 12:34:32 2014 +0100
shell32/tests: Skip any test that needs the .shlexec association if we could not create it.
---
dlls/shell32/tests/shlexec.c | 69 ++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 16 deletions(-)
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c index 706ad34..10c341f 100644 --- a/dlls/shell32/tests/shlexec.c +++ b/dlls/shell32/tests/shlexec.c @@ -57,6 +57,7 @@ static char** myARGV; static char tmpdir[MAX_PATH]; static char child_file[MAX_PATH]; static DLLVERSIONINFO dllver; +static BOOL skip_shlexec_tests = FALSE; static BOOL skip_noassoc_tests = FALSE; static HANDLE dde_ready_event;
@@ -912,6 +913,12 @@ static void test_lpFile_parsed(void) char fileA[MAX_PATH]; INT_PTR rc;
+ if (skip_shlexec_tests) + { + skip("No filename parsing tests due to lack of .shlexec association\n"); + return; + } + /* existing "drawback_file.noassoc" prevents finding "drawback_file.noassoc foo.shlexec" on wine */ sprintf(fileA, "%s\drawback_file.noassoc foo.shlexec", tmpdir); rc=shell_execute(NULL, fileA, NULL, NULL); @@ -1392,6 +1399,12 @@ static void test_argify(void) const char* cmd; unsigned i, count;
+ if (skip_shlexec_tests) + { + skip("No argify tests due to lack of .shlexec association\n"); + return; + } + create_test_verb(".shlexec", "Params232S", 0, "Params232S %2 %3 "%2" "%*""); create_test_verb(".shlexec", "Params23456", 0, "Params23456 "%2" "%3" "%4" "%5" "%6""); create_test_verb(".shlexec", "Params23456789", 0, "Params23456789 "%2" "%3" "%4" "%5" "%6" "%7" "%8" "%9""); @@ -1471,6 +1484,12 @@ static void test_filename(void) char* c; INT_PTR rc;
+ if (skip_shlexec_tests) + { + skip("No ShellExecute/filename tests due to lack of .shlexec association\n"); + return; + } + test=filename_tests; while (test->basename) { @@ -1692,6 +1711,12 @@ static void test_fileurls(void) char *s; INT_PTR rc;
+ if (skip_shlexec_tests) + { + skip("No file URL tests due to lack of .shlexec association\n"); + return; + } + rc = (INT_PTR)ShellExecuteA(NULL, NULL, "file:///nosuchfile.shlexec", NULL, NULL, SW_SHOWNORMAL); if (rc > 32) { @@ -1862,6 +1887,12 @@ static void test_find_executable(void) return; }
+ if (skip_shlexec_tests) + { + skip("No FindExecutable/filename tests due to lack of .shlexec association\n"); + return; + } + test=filename_tests; while (test->basename) { @@ -1935,23 +1966,28 @@ static void test_lnks(void) const filename_tests_t* test; INT_PTR rc;
- /* Should open through our association */ - sprintf(filename, "%s\test_shortcut_shlexec.lnk", tmpdir); - rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, NULL, NULL, NULL); - ok(rc > 32, "%s failed: rc=%lu err=%u\n", shell_call, rc, GetLastError()); - okChildInt("argcA", 5); - okChildString("argvA3", "Open"); - sprintf(params, "%s\test file.shlexec", tmpdir); - get_long_path_name(params, filename, sizeof(filename)); - okChildPath("argvA4", filename); + if (skip_shlexec_tests) + skip("No FindExecutable/filename tests due to lack of .shlexec association\n"); + else + { + /* Should open through our association */ + sprintf(filename, "%s\test_shortcut_shlexec.lnk", tmpdir); + rc=shell_execute_ex(SEE_MASK_NOZONECHECKS, NULL, filename, NULL, NULL, NULL); + ok(rc > 32, "%s failed: rc=%lu err=%u\n", shell_call, rc, GetLastError()); + okChildInt("argcA", 5); + okChildString("argvA3", "Open"); + sprintf(params, "%s\test file.shlexec", tmpdir); + get_long_path_name(params, filename, sizeof(filename)); + okChildPath("argvA4", filename);
- todo_wait rc=shell_execute_ex(SEE_MASK_NOZONECHECKS|SEE_MASK_DOENVSUBST, NULL, "%TMPDIR%\test_shortcut_shlexec.lnk", NULL, NULL, NULL); - ok(rc > 32, "%s failed: rc=%lu err=%u\n", shell_call, rc, GetLastError()); - okChildInt("argcA", 5); - todo_wine okChildString("argvA3", "Open"); - sprintf(params, "%s\test file.shlexec", tmpdir); - get_long_path_name(params, filename, sizeof(filename)); - todo_wine okChildPath("argvA4", filename); + todo_wait rc=shell_execute_ex(SEE_MASK_NOZONECHECKS|SEE_MASK_DOENVSUBST, NULL, "%TMPDIR%\test_shortcut_shlexec.lnk", NULL, NULL, NULL); + ok(rc > 32, "%s failed: rc=%lu err=%u\n", shell_call, rc, GetLastError()); + okChildInt("argcA", 5); + todo_wine okChildString("argvA3", "Open"); + sprintf(params, "%s\test file.shlexec", tmpdir); + get_long_path_name(params, filename, sizeof(filename)); + todo_wine okChildPath("argvA4", filename); + }
/* Should just run our executable */ sprintf(filename, "%s\test_shortcut_exe.lnk", tmpdir); @@ -2564,6 +2600,7 @@ static void init_test(void) /* Create a basic association suitable for most tests */ if (!create_test_association(".shlexec")) { + skip_shlexec_tests = TRUE; skip("Unable to create association for '.shlexec'\n"); return; }