Module: wine Branch: master Commit: 6cd34c900262f7636b484476da182daad7a60a65 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6cd34c900262f7636b484476da...
Author: Andrew Cook ariscop@gmail.com Date: Sat Mar 28 13:26:30 2015 +1100
kernel32/tests: Add tests for job inheritance.
Cleanup and improvements by Sebastian Lackner.
---
dlls/kernel32/tests/process.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c index 3395f0f..b8413f6 100644 --- a/dlls/kernel32/tests/process.c +++ b/dlls/kernel32/tests/process.c @@ -2425,6 +2425,38 @@ static HANDLE test_AddSelfToJob(void) return job; }
+static void test_jobInheritance(HANDLE job) +{ + char buffer[MAX_PATH]; + PROCESS_INFORMATION pi; + STARTUPINFOA si = {0}; + DWORD dwret; + BOOL ret, out; + + if (!pIsProcessInJob) + { + win_skip("IsProcessInJob not available.\n"); + return; + } + + snprintf(buffer, MAX_PATH, ""%s" tests/process.c %s", selfname, "exit"); + + ret = CreateProcessA(NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); + ok(ret, "CreateProcessA error %u\n", GetLastError()); + + out = FALSE; + ret = pIsProcessInJob(pi.hProcess, job, &out); + ok(ret, "IsProcessInJob error %u\n", GetLastError()); + todo_wine + ok(out, "IsProcessInJob returned out=%u\n", out); + + dwret = WaitForSingleObject(pi.hProcess, 1000); + ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret); + + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); +} + static void test_BreakawayOk(HANDLE job) { JOBOBJECT_EXTENDED_LIMIT_INFORMATION limit_info; @@ -2565,6 +2597,7 @@ START_TEST(process) test_CompletionPort(); test_KillOnJobClose(); job = test_AddSelfToJob(); + test_jobInheritance(job); test_BreakawayOk(job); CloseHandle(job); }