From: Piotr Caban piotr@codeweavers.com
--- dlls/kernel32/tests/console.c | 4 +--- dlls/kernel32/tests/process.c | 28 ++++++++++++---------------- dlls/kernel32/tests/virtual.c | 8 ++------ 3 files changed, 15 insertions(+), 25 deletions(-)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c index 35ea04a2d5f..3c3538041f4 100644 --- a/dlls/kernel32/tests/console.c +++ b/dlls/kernel32/tests/console.c @@ -4312,9 +4312,7 @@ static void test_FreeConsole(HANDLE input, HANDLE orig_output) /* Test that our handles are now designaled in the child. */ SetEvent(parent_event);
- CloseHandle(info.hThread); - wait_child_process(info.hProcess); - CloseHandle(info.hProcess); + wait_child_process(&info);
ret = WriteConsoleInputW(input, &ir, 1, &size); ok(ret, "got error %lu\n", GetLastError()); diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index ce47b4ad2d7..7bc62fb54d3 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -1208,14 +1208,14 @@ static void test_Toolhelp(void) get_file_name(resfile); sprintf(buffer, ""%s" process nested "%s"", selfname, resfile); ok(CreateProcessA(NULL, buffer, NULL, NULL, FALSE, 0L, NULL, NULL, &startup, &info), "CreateProcess failed\n"); - wait_child_process(&info); + ret = WaitForSingleObject(info.hProcess, 1000); + ok(ret == WAIT_OBJECT_0, "WaitForSingleObject returned %lu\n", ret);
process = OpenProcess(PROCESS_ALL_ACCESS_NT4, FALSE, info.dwProcessId); ok(process != NULL, "OpenProcess failed %lu\n", GetLastError()); CloseHandle(process);
- CloseHandle(info.hProcess); - CloseHandle(info.hThread); + wait_child_process(&info);
for (i = 0; i < 20; i++) { @@ -2674,6 +2674,7 @@ static void test_IsProcessInJob(void) HANDLE job, job2; PROCESS_INFORMATION pi; BOOL ret, out; + DWORD dwret;
if (!pIsProcessInJob) { @@ -2726,7 +2727,8 @@ static void test_IsProcessInJob(void) ok(out, "IsProcessInJob returned out=%u\n", out);
TerminateProcess(pi.hProcess, 0); - wait_child_process(pi.hProcess); + dwret = WaitForSingleObject(pi.hProcess, 1000); + ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %lu\n", dwret);
out = FALSE; ret = pIsProcessInJob(pi.hProcess, job, &out); @@ -2735,8 +2737,7 @@ static void test_IsProcessInJob(void) test_assigned_proc(job, 0); test_accounting(job, 1, 0, 0);
- CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); + wait_child_process(&pi); CloseHandle(job); CloseHandle(job2); } @@ -2780,7 +2781,8 @@ static void test_TerminateJobObject(void)
/* Test adding an already terminated process to a job object */ create_process("exit", &pi); - wait_child_process(pi.hProcess); + dwret = WaitForSingleObject(pi.hProcess, 1000); + ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %lu\n", dwret);
SetLastError(0xdeadbeef); ret = pAssignProcessToJobObject(job, pi.hProcess); @@ -2789,9 +2791,7 @@ static void test_TerminateJobObject(void) test_assigned_proc(job, 0); test_accounting(job, 1, 0, 0);
- CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - + wait_child_process(&pi); CloseHandle(job); }
@@ -2970,19 +2970,15 @@ static void test_CompletionPort(void) test_completion(port, JOB_OBJECT_MSG_NEW_PROCESS, (DWORD_PTR)job, pi.dwProcessId, 0);
TerminateProcess(pi.hProcess, 0); - wait_child_process(pi.hProcess); + wait_child_process(&pi);
test_completion(port, JOB_OBJECT_MSG_EXIT_PROCESS, (DWORD_PTR)job, pi.dwProcessId, 0); TerminateProcess(pi2.hProcess, 0); - wait_child_process(pi2.hProcess); - CloseHandle(pi2.hProcess); - CloseHandle(pi2.hThread); + wait_child_process(&pi2);
test_completion(port, JOB_OBJECT_MSG_EXIT_PROCESS, (DWORD_PTR)job, pi2.dwProcessId, 0); test_completion(port, JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO, (DWORD_PTR)job, 0, 100);
- CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); CloseHandle(job); CloseHandle(port); } diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index d0553b19966..d85e4d6203f 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -4419,9 +4419,7 @@ static void test_shared_memory(BOOL is_child) sprintf(cmdline, ""%s" virtual sharedmem", argv[0]); ret = CreateProcessA(argv[0], cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); ok(ret, "CreateProcess(%s) error %ld\n", cmdline, GetLastError()); - wait_child_process(pi.hProcess); - CloseHandle(pi.hThread); - CloseHandle(pi.hProcess); + wait_child_process(&pi); }
UnmapViewOfFile(p); @@ -4459,9 +4457,7 @@ static void test_shared_memory_ro(BOOL is_child, DWORD child_access) sprintf(cmdline, ""%s" virtual sharedmemro %lx", argv[0], child_access); ret = CreateProcessA(argv[0], cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); ok(ret, "CreateProcess(%s) error %ld\n", cmdline, GetLastError()); - wait_child_process(pi.hProcess); - CloseHandle(pi.hThread); - CloseHandle(pi.hProcess); + wait_child_process(&pi);
if(child_access & FILE_MAP_WRITE) ok(*p == 0xdeadbeef, "*p = %lx, expected 0xdeadbeef\n", *p);