Aric Stewart : kernel32/tests: Add a test for CreateProcess with an AppName set.

Alexandre Julliard julliard at winehq.org
Thu Oct 16 06:07:15 CDT 2008


Module: wine
Branch: master
Commit: 6ec0e71e173c44938c3e818122edd2c83e3b4098
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6ec0e71e173c44938c3e818122edd2c83e3b4098

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Oct 15 09:30:21 2008 -0500

kernel32/tests: Add a test for CreateProcess with an AppName set.

---

 dlls/kernel32/tests/process.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index f7ca2f8..7f716d6 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -731,6 +731,7 @@ static void test_Startup(void)
 static void test_CommandLine(void)
 {
     char                buffer[MAX_PATH], fullpath[MAX_PATH], *lpFilePart, *p;
+    char                buffer2[MAX_PATH];
     PROCESS_INFORMATION	info;
     STARTUPINFOA	startup;
     DWORD               len;
@@ -830,7 +831,29 @@ static void test_CommandLine(void)
     okChildString("Arguments", "argvA0", buffer);
     release_memory();
     assert(DeleteFileA(resfile) != 0);
-    
+
+    /* Using AppName */
+    get_file_name(resfile);
+    len = GetFullPathNameA(selfname, MAX_PATH, fullpath, &lpFilePart);
+    assert ( lpFilePart != 0);
+    *(lpFilePart -1 ) = 0;
+    p = strrchr(fullpath, '\\');
+    assert (p);
+    /* Use exename to avoid buffer containing things like 'C:' */
+    sprintf(buffer, "..%s/%s", p, exename);
+    sprintf(buffer2, "dummy tests/process.c %s \"a\\\"b\\\\\" c\\\" d", resfile);
+    SetLastError(0xdeadbeef);
+    ret = CreateProcessA(buffer, buffer2, NULL, NULL, FALSE, 0L, NULL, NULL, &startup, &info);
+    ok(ret, "CreateProcess (%s) failed : %d\n", buffer, GetLastError());
+    /* wait for child to terminate */
+    ok(WaitForSingleObject(info.hProcess, 30000) == WAIT_OBJECT_0, "Child process termination\n");
+    /* child process has changed result file, so let profile functions know about it */
+    WritePrivateProfileStringA(NULL, NULL, NULL, resfile);
+    sprintf(buffer, "tests/process.c %s", resfile);
+    okChildString("Arguments", "argvA0", "dummy");
+    okChildString("Arguments", "CommandLineA", buffer2);
+    release_memory();
+    assert(DeleteFileA(resfile) != 0);
 }
 
 static void test_Directory(void)




More information about the wine-cvs mailing list