new process test

Eric Pouech pouech-eric at wanadoo.fr
Wed Jun 25 14:25:37 CDT 2003


added a small test for process exit code value
A+
-- 
Eric Pouech
-------------- next part --------------
Name:          pcs_ec
ChangeLog:     added a small test for process exit code retrieval
License:       X11
GenDate:       2003/06/25 19:24:31 UTC
ModifiedFiles: dlls/kernel/tests/process.c
===================================================================
RCS file: /home/cvs/cvsroot/wine/wine/dlls/kernel/tests/process.c,v
retrieving revision 1.9
diff -u -u -r1.9 process.c
--- dlls/kernel/tests/process.c	18 Jun 2003 03:24:20 -0000	1.9
+++ dlls/kernel/tests/process.c	19 Jun 2003 18:59:52 -0000
@@ -347,6 +347,13 @@
         }
     }
 
+    if (option && strcmp(option, "exit_code") == 0)
+    {
+        childPrintf(hFile, "[ExitCode]\nvalue=%d\n\n", 123);
+        CloseHandle(hFile);
+        ExitProcess(123);
+    }
+
     CloseHandle(hFile);
 }
 
@@ -1135,6 +1142,35 @@
     assert(DeleteFileA(resfile) != 0);
 }
 
+static  void    test_ExitCode(void)
+{
+    char                buffer[MAX_PATH];
+    PROCESS_INFORMATION	info;
+    STARTUPINFOA	startup;
+    DWORD               code;
+
+    /* let's start simplistic */
+    memset(&startup, 0, sizeof(startup));
+    startup.cb = sizeof(startup);
+    startup.dwFlags = STARTF_USESHOWWINDOW;
+    startup.wShowWindow = SW_SHOWNORMAL;
+
+    get_file_name(resfile);
+    sprintf(buffer, "%s tests/process.c %s exit_code", selfname, resfile);
+    ok(CreateProcessA(NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &startup, &info), "CreateProcess");
+
+    /* wait for child to terminate */
+    ok(WaitForSingleObject(info.hProcess, 30000) == WAIT_OBJECT_0, "Child process termination");
+    /* child process has changed result file, so let profile functions know about it */
+    WritePrivateProfileStringA(NULL, NULL, NULL, resfile);
+
+    ok(GetExitCodeProcess(info.hProcess, &code), "Getting exit code");
+    okChildInt("ExitCode", "value", code);
+
+    release_memory();
+    assert(DeleteFileA(resfile) != 0);
+}
+
 START_TEST(process)
 {
     int b = init();
@@ -1153,6 +1189,7 @@
     test_SuspendFlag();
     test_DebuggingFlag();
     test_Console();
+    test_ExitCode();
     /* things that can be tested:
      *  lookup:         check the way program to be executed is searched
      *  handles:        check the handle inheritance stuff (+sec options)


More information about the wine-patches mailing list