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

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "00e55c8fc0c08e14c39880e62526f8503468b641"
echo "9c190f8118faa2f4708e86340e3e0440f668835b"
}
# Show version information
@ -7256,7 +7256,7 @@ fi
# | dlls/xactengine3_7/Makefile.in, dlls/xactengine3_7/xactengine3_7.spec, dlls/xaudio2_7/Makefile.in,
# | dlls/xaudio2_7/tests/Makefile.in, dlls/xaudio2_7/tests/globals.xgs, dlls/xaudio2_7/tests/rsrc.rc,
# | dlls/xaudio2_7/tests/xact.c, dlls/xaudio2_7/tests/xaudio2.c, dlls/xaudio2_7/xact_classes.idl, dlls/xaudio2_7/xact_dll.c,
# | dlls/xaudio2_7/xaudio_dll.c, include/Makefile.in, include/config.h.in, include/xact3.idl, include/xact3wb.h
# | include/Makefile.in, include/xact3.idl, include/xact3wb.h
# |
if test "$enable_xactengine_initial" -eq 1; then
patch_apply xactengine-initial/0001-include-Add-xact3.idl.patch
@ -7270,7 +7270,6 @@ if test "$enable_xactengine_initial" -eq 1; then
patch_apply xactengine-initial/0009-xaudio2_7-unwrap-structure-based-of-it-s-type.patch
patch_apply xactengine-initial/0010-xaudio2_7-Correct-callback-to-windows-function.patch
patch_apply xactengine-initial/0011-xaudio2_7-Initial-IXACT3Engine-tests.patch
patch_apply xactengine-initial/0012-xaudio2_7-Trace-FAudio-version-being-used.patch
patch_apply xactengine-initial/0013-xaudio2_7-Trace-FAudio-version-being-used.patch
patch_apply xactengine-initial/0014-include-Add-XACTENGINE_-error-codes.patch
patch_apply xactengine-initial/0015-include-Add-XACT-defines.patch

View File

@ -1,19 +1,19 @@
From 7db6d5b2412223cc16ff726502c7b3c66eab41c3 Mon Sep 17 00:00:00 2001
From 64f380eeb8ba1de36b47b6035510373fd1edeaac Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 24 Feb 2016 19:18:52 +0100
Subject: [PATCH 3/3] server: Assign random name when no name was passed to
Subject: [PATCH] server: Assign random name when no name was passed to
create_winstation.
---
dlls/user32/tests/winstation.c | 4 ++--
server/winstation.c | 24 +++++++++++++++++++++++-
2 files changed, 25 insertions(+), 3 deletions(-)
server/winstation.c | 23 ++++++++++++++++++++++-
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/tests/winstation.c b/dlls/user32/tests/winstation.c
index 6bebfe9..1ca71a1 100644
index 4aa5565b96c..9eb3b433c11 100644
--- a/dlls/user32/tests/winstation.c
+++ b/dlls/user32/tests/winstation.c
@@ -220,8 +220,8 @@ static void test_handles(void)
@@ -225,8 +225,8 @@ static void test_handles(void)
memset( buffer, 0, sizeof(buffer) );
ret = GetUserObjectInformationA( w2, UOI_NAME, buffer, sizeof(buffer), &size );
ok( ret, "GetUserObjectInformationA failed with error %u\n", GetLastError() );
@ -25,18 +25,25 @@ index 6bebfe9..1ca71a1 100644
SetLastError( 0xdeadbeef );
w3 = OpenWindowStationA( "", TRUE, WINSTA_ALL_ACCESS );
diff --git a/server/winstation.c b/server/winstation.c
index fde6b68..f96936f 100644
index b120859b39a..fee8980224c 100644
--- a/server/winstation.c
+++ b/server/winstation.c
@@ -113,9 +113,30 @@ static const struct object_ops desktop_ops =
@@ -38,6 +38,7 @@
#include "user.h"
#include "file.h"
#include "security.h"
+#include "unicode.h"
static struct list winstation_list = LIST_INIT(winstation_list);
@@ -114,9 +115,28 @@ static const struct object_ops desktop_ops =
static struct winstation *create_winstation( struct object *root, const struct unicode_str *name,
unsigned int attr, unsigned int flags )
{
+ static const WCHAR formatW[] = {'S','e','r','v','i','c','e','-','0','x','0','-','%','x','$',0};
+ static unsigned int id = 0x10000;
struct winstation *winstation;
+ struct unicode_str default_name;
+ WCHAR buffer[32];
+ char buffer[32];
- if ((winstation = create_named_object( root, &winstation_ops, name, attr, NULL )))
+ if (name->len)
@ -48,9 +55,8 @@ index fde6b68..f96936f 100644
+ do
+ {
+ if (!++id) id = 1; /* avoid an id of 0 */
+ sprintfW( buffer, formatW, id );
+ default_name.str = buffer;
+ default_name.len = strlenW( buffer ) * sizeof(WCHAR);
+ sprintf( buffer, "Service-0x0-%x$", id);
+ ascii_to_unicode_str( buffer, &default_name );
+ winstation = create_named_object( root, &winstation_ops, &default_name, attr & ~OBJ_OPENIF, NULL );
+ }
+ while (!winstation && get_error() == STATUS_OBJECT_NAME_COLLISION);
@ -60,7 +66,7 @@ index fde6b68..f96936f 100644
{
if (get_error() != STATUS_OBJECT_NAME_EXISTS)
{
@@ -133,6 +154,7 @@ static struct winstation *create_winstation( struct object *root, const struct u
@@ -134,6 +154,7 @@ static struct winstation *create_winstation( struct object *root, const struct u
}
else clear_error();
}
@ -69,5 +75,5 @@ index fde6b68..f96936f 100644
}
--
1.9.1
2.25.1

View File

@ -1375,11 +1375,11 @@ index 0000000000..07f866606d
+ * -flibit
+ */
+ if (pParams->pXAudio2 != NULL){
+ FIXME("pXAudio2 parameter not supported! Falling back to NULL");
+ FIXME("pXAudio2 parameter not supported! Falling back to NULL\n");
+ params.pXAudio2 = NULL;
+
+ if (pParams->pMasteringVoice != NULL){
+ FIXME("pXAudio2 parameter not supported! Falling back to NULL");
+ FIXME("pXAudio2 parameter not supported! Falling back to NULL\n");
+ params.pMasteringVoice = NULL;
+ }
+ }

View File

@ -28,7 +28,7 @@ index 1f580519d4..9cec216002 100644
- if(FAILED(hr))
- return hr;
+ if (ret != 0) {
+ ERR("Failed to CreateInMemoryWaveBank: %d\n", ret);
+ ERR("Failed to CreateSoundBank: %d\n", ret);
+ return E_FAIL;
+ }

View File

@ -1,57 +0,0 @@
From b331a9b8e5a7eb893fa9a8e04244646910354430 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Tue, 14 Jan 2020 15:47:15 +1100
Subject: [PATCH] xaudio2_7: Trace FAudio version being used
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
configure.ac | 3 ++-
dlls/xaudio2_7/xaudio_dll.c | 3 +++
include/config.h.in | 3 +++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 47d2b750c0..f688b56967 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1738,7 +1738,8 @@ then
[AC_CHECK_HEADERS([FAudio.h],
[WINE_CHECK_SONAME(FAudio,FAudioCreate,,,[$FAUDIO_LIBS],[[libFAudio*]])])
WINE_CHECK_LIB_FUNCS([FAudio_CommitOperationSet \
- F3DAudioInitialize8], [$FAUDIO_LIBS])
+ F3DAudioInitialize8 \
+ FAudioLinkedVersion], [$FAUDIO_LIBS])
])
fi
WINE_NOTICE_WITH(faudio,[test "x$ac_cv_lib_soname_FAudio" = "x"],
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index a87e0124d3..2601a280ba 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -90,6 +90,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD reason, void *pReserved)
case DLL_PROCESS_ATTACH:
instance = hinstDLL;
DisableThreadLibraryCalls( hinstDLL );
+#ifdef HAVE_FAUDIOLINKEDVERSION
+ TRACE("Using FAudio version %d\n", FAudioLinkedVersion() );
+#endif
break;
}
return TRUE;
diff --git a/include/config.h.in b/include/config.h.in
index 1d0b216b6a..887ed3026b 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -152,6 +152,9 @@
/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE
+/* Define to 1 if you have the `FAudioLinkedVersion' function. */
+#undef HAVE_FAUDIOLINKEDVERSION
+
/* Define to 1 if you have the `FAudio_CommitOperationSet' function. */
#undef HAVE_FAUDIO_COMMITOPERATIONSET
--
2.17.1