[PATCH 2/4] shell32/tests: test shlexec argv[0], and same-named executables in a different directory

Damjan Jovanovic damjan.jov at gmail.com
Sun Mar 22 06:46:15 CDT 2020


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=8439
Signed-off-by: Damjan Jovanovic <damjan.jov at gmail.com>
---
 dlls/shell32/tests/shlexec.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
-------------- next part --------------
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index 5d074671c5..583504e275 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -2832,6 +2832,7 @@ static void test_directory(void)
                         NULL, "test2.exe", params, NULL, NULL);
     okShell(rc > 32, "returned %lu\n", rc);
     okChildInt("argcA", 4);
+    todo_wine okChildString("argvA0", path);
     okChildString("argvA3", "Exec");
     okChildPath("longPath", path);
     SetCurrentDirectoryA(curdir);
@@ -2845,6 +2846,7 @@ static void test_directory(void)
                         NULL, "test2.exe", params, tmpdir, NULL);
     okShell(rc > 32, "returned %lu\n", rc);
     okChildInt("argcA", 4);
+    todo_wine okChildString("argvA0", path);
     okChildString("argvA3", "Exec");
     okChildPath("longPath", path);
 
@@ -2857,6 +2859,7 @@ static void test_directory(void)
                         NULL, "test2.exe", params, "%TMPDIR%", NULL);
     okShell(rc > 32, "returned %lu\n", rc);
     okChildInt("argcA", 4);
+    todo_wine okChildString("argvA0", path);
     okChildString("argvA3", "Exec");
     okChildPath("longPath", path);
 
@@ -2865,6 +2868,18 @@ static void test_directory(void)
     rc=shell_execute_ex(SEE_MASK_NOZONECHECKS|SEE_MASK_FLAG_NO_UI,
                         NULL, "test2.exe", params, dirpath, NULL);
     okShell(rc == SE_ERR_FNF, "returned %lu\n", rc);
+
+    /* Same-named executable in different directory */
+    snprintf(path, ARRAY_SIZE(path), "%s%s", tmpdir, strrchr(argv0, '\\'));
+    CopyFileA(argv0, path, FALSE);
+    rc=shell_execute_ex(SEE_MASK_NOZONECHECKS|SEE_MASK_FLAG_NO_UI,
+                        NULL, strrchr(argv0, '\\') + 1, params, tmpdir, NULL);
+    okShell(rc > 32, "returned %lu\n", rc);
+    okChildInt("argcA", 4);
+    todo_wine okChildString("argvA0", path);
+    okChildString("argvA3", "Exec");
+    todo_wine okChildPath("longPath", path);
+    DeleteFileA(path);
 }
 
 START_TEST(shlexec)


More information about the wine-devel mailing list