Rebase against 9c190f8118faa2f4708e86340e3e0440f668835b

This commit is contained in:
Alistair Leslie-Hughes
2020-03-25 08:21:22 +11:00
parent 75c7644c3d
commit e5da84dc36
6 changed files with 48 additions and 100 deletions

View File

@@ -1,4 +1,4 @@
From e9f5574ee2a3b6a0b2668747aef7d95c176ece8f Mon Sep 17 00:00:00 2001
From 8781454669b29f8e2a2c0406ed4b48b435354a0c Mon Sep 17 00:00:00 2001
From: Mark Jansen <mark.jansen@reactos.org>
Date: Sun, 24 Sep 2017 22:45:22 +0200
Subject: [PATCH] kernel32/tests: Add tests for job object accounting
@@ -9,10 +9,10 @@ Signed-off-by: Mark Jansen <mark.jansen@reactos.org>
1 file changed, 95 insertions(+)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index f181536e7a6..4c2709cce0e 100644
index 32818042337..2ecd3dc10e8 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -2423,6 +2423,69 @@ static void _create_process(int line, const char *command, LPPROCESS_INFORMATION
@@ -2398,6 +2398,69 @@ static void _create_process(int line, const char *command, LPPROCESS_INFORMATION
ok_(__FILE__, line)(ret, "CreateProcess error %u\n", GetLastError());
}
@@ -82,7 +82,7 @@ index f181536e7a6..4c2709cce0e 100644
static void test_IsProcessInJob(void)
{
@@ -2449,11 +2512,15 @@ static void test_IsProcessInJob(void)
@@ -2423,11 +2486,15 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
@@ -98,7 +98,7 @@ index f181536e7a6..4c2709cce0e 100644
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
@@ -2462,11 +2529,15 @@ static void test_IsProcessInJob(void)
@@ -2436,11 +2503,15 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
@@ -114,7 +114,7 @@ index f181536e7a6..4c2709cce0e 100644
out = FALSE;
ret = pIsProcessInJob(pi.hProcess, NULL, &out);
@@ -2482,6 +2553,8 @@ static void test_IsProcessInJob(void)
@@ -2454,6 +2525,8 @@ static void test_IsProcessInJob(void)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
@@ -123,7 +123,7 @@ index f181536e7a6..4c2709cce0e 100644
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
@@ -2498,11 +2571,15 @@ static void test_TerminateJobObject(void)
@@ -2470,11 +2543,15 @@ static void test_TerminateJobObject(void)
job = pCreateJobObjectW(NULL, NULL);
ok(job != NULL, "CreateJobObject error %u\n", GetLastError());
@@ -139,7 +139,7 @@ index f181536e7a6..4c2709cce0e 100644
ret = pTerminateJobObject(job, 123);
ok(ret, "TerminateJobObject error %u\n", GetLastError());
@@ -2510,6 +2587,8 @@ static void test_TerminateJobObject(void)
@@ -2483,6 +2560,8 @@ static void test_TerminateJobObject(void)
dwret = WaitForSingleObject(pi.hProcess, 1000);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
if (dwret == WAIT_TIMEOUT) TerminateProcess(pi.hProcess, 0);
@@ -148,7 +148,7 @@ index f181536e7a6..4c2709cce0e 100644
ret = GetExitCodeProcess(pi.hProcess, &dwret);
ok(ret, "GetExitCodeProcess error %u\n", GetLastError());
@@ -2529,6 +2608,8 @@ static void test_TerminateJobObject(void)
@@ -2500,6 +2579,8 @@ static void test_TerminateJobObject(void)
ret = pAssignProcessToJobObject(job, pi.hProcess);
ok(!ret, "AssignProcessToJobObject unexpectedly succeeded\n");
expect_eq_d(ERROR_ACCESS_DENIED, GetLastError());
@@ -157,7 +157,7 @@ index f181536e7a6..4c2709cce0e 100644
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
@@ -2715,11 +2796,15 @@ static void test_KillOnJobClose(void)
@@ -2687,11 +2768,15 @@ static void test_KillOnJobClose(void)
return;
}
ok(ret, "SetInformationJobObject error %u\n", GetLastError());
@@ -173,7 +173,7 @@ index f181536e7a6..4c2709cce0e 100644
CloseHandle(job);
@@ -2823,6 +2908,8 @@ static HANDLE test_AddSelfToJob(void)
@@ -2801,6 +2886,8 @@ static HANDLE test_AddSelfToJob(void)
ret = pAssignProcessToJobObject(job, GetCurrentProcess());
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
@@ -182,16 +182,16 @@ index f181536e7a6..4c2709cce0e 100644
return job;
}
@@ -2850,6 +2937,8 @@ static void test_jobInheritance(HANDLE job)
@@ -2822,6 +2909,8 @@ static void test_jobInheritance(HANDLE job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 2, GetCurrentProcessId(), pi.dwProcessId);
+ test_accounting(job, 2, 2, 0);
dwret = WaitForSingleObject(pi.hProcess, 1000);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
@@ -2878,6 +2967,8 @@ static void test_BreakawayOk(HANDLE job)
wait_and_close_child_process(&pi);
}
@@ -2844,6 +2933,8 @@ static void test_BreakawayOk(HANDLE job)
ret = CreateProcessA(NULL, buffer, NULL, NULL, FALSE, CREATE_BREAKAWAY_FROM_JOB, NULL, NULL, &si, &pi);
ok(!ret, "CreateProcessA expected failure\n");
expect_eq_d(ERROR_ACCESS_DENIED, GetLastError());
@@ -200,24 +200,24 @@ index f181536e7a6..4c2709cce0e 100644
if (ret)
{
@@ -2900,6 +2991,8 @@ static void test_BreakawayOk(HANDLE job)
@@ -2861,6 +2952,8 @@ static void test_BreakawayOk(HANDLE job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 1, GetCurrentProcessId());
+ test_accounting(job, 2, 1, 0);
dwret = WaitForSingleObject(pi.hProcess, 1000);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
@@ -2917,6 +3010,8 @@ static void test_BreakawayOk(HANDLE job)
wait_and_close_child_process(&pi);
@@ -2874,6 +2967,8 @@ static void test_BreakawayOk(HANDLE job)
ret = pIsProcessInJob(pi.hProcess, job, &out);
ok(ret, "IsProcessInJob error %u\n", GetLastError());
ok(!out, "IsProcessInJob returned out=%u\n", out);
+ test_assigned_proc(job, 1, GetCurrentProcessId());
+ test_accounting(job, 2, 1, 0);
dwret = WaitForSingleObject(pi.hProcess, 1000);
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
wait_and_close_child_process(&pi);
--
2.23.0
2.25.1