You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e5ddda02b5 | ||
|
f077cbe2d3 | ||
|
0e1d830578 | ||
|
a79a08a6f7 | ||
|
0648126dae | ||
|
9fa3c96cff | ||
|
1ba67d1cfb | ||
|
8c4c65ff27 |
@@ -121,7 +121,7 @@ index cacb7ea7751..19a807c1624 100644
|
||||
+ WINE_TRACE("Process still running, but returning anyway\n");
|
||||
+ errorlevel = 0;
|
||||
+ } else {
|
||||
+ WINE_TRACE("Process ended, errorlevel %d\n", errorlevel);
|
||||
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
|
||||
+ }
|
||||
+
|
||||
+ CloseHandle(pe.hProcess);
|
||||
@@ -160,7 +160,7 @@ index cacb7ea7751..19a807c1624 100644
|
||||
- GetExitCodeProcess (pe.hProcess, &errorlevel);
|
||||
- if (errorlevel == STILL_ACTIVE) errorlevel = 0;
|
||||
+ if (!status) {
|
||||
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%d)\n",
|
||||
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%ld)\n",
|
||||
+ status, GetLastError());
|
||||
+ break;
|
||||
+ }
|
||||
@@ -180,7 +180,7 @@ index cacb7ea7751..19a807c1624 100644
|
||||
+ WINE_TRACE("Process still running, but returning anyway\n");
|
||||
+ errorlevel = 0;
|
||||
+ } else {
|
||||
+ WINE_TRACE("Process ended, errorlevel %d\n", errorlevel);
|
||||
+ WINE_TRACE("Process ended, errorlevel %ld\n", errorlevel);
|
||||
+ }
|
||||
+
|
||||
+ CloseHandle(pe.hProcess);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a5045503cf3310058cc64814ff9626f4877a13bb Mon Sep 17 00:00:00 2001
|
||||
From 12a9a9cb506aede4748611c8fa3339afcee7c070 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 5 Jul 2019 13:20:23 +0800
|
||||
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
|
||||
@@ -17,10 +17,10 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
create mode 100644 dlls/cryptext/tests/cryptext.c
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index db592f0868d..ba13abacc46 100755
|
||||
index 20bcb96a2a6..b8fd60dbb53 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -20291,6 +20291,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
@@ -20910,6 +20910,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
|
||||
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
|
||||
wine_fn_config_makefile dlls/cryptext enable_cryptext
|
||||
@@ -29,10 +29,10 @@ index db592f0868d..ba13abacc46 100755
|
||||
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptsp enable_cryptsp
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d449b88fb19..af75e0e80ab 100644
|
||||
index 6cbd947bf31..c68c5975e63 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3029,6 +3029,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
@@ -2361,6 +2361,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptext)
|
||||
@@ -113,7 +113,7 @@ index 537ba66cd3b..f9e34d1f8c5 100644
|
||||
+ PCCERT_CONTEXT ctx;
|
||||
+ CRYPTUI_VIEWCERTIFICATE_STRUCTW info;
|
||||
+
|
||||
+ TRACE("(%p, %p, %s, %u)\n", hwnd, hinst, debugstr_w(filename), showcmd);
|
||||
+ TRACE("(%p, %p, %s, %lu)\n", hwnd, hinst, debugstr_w(filename), showcmd);
|
||||
+
|
||||
+ if (!CryptQueryObject(CERT_QUERY_OBJECT_FILE, filename, CERT_QUERY_CONTENT_FLAG_CERT,
|
||||
+ CERT_QUERY_FORMAT_FLAG_ALL, 0, NULL, NULL, NULL, NULL, NULL,
|
||||
@@ -142,7 +142,7 @@ index 537ba66cd3b..f9e34d1f8c5 100644
|
||||
+ HRESULT hr;
|
||||
+ LPWSTR filenameW;
|
||||
+
|
||||
+ TRACE("(%p, %p, %s, %u)\n", hwnd, hinst, debugstr_a(filename), showcmd);
|
||||
+ TRACE("(%p, %p, %s, %lu)\n", hwnd, hinst, debugstr_a(filename), showcmd);
|
||||
+
|
||||
+ filenameW = heap_strdupAtoW(filename);
|
||||
+ hr = CryptExtOpenCERW(hwnd, hinst, filenameW, showcmd);
|
||||
@@ -212,10 +212,10 @@ index 00000000000..cc62a772b59
|
||||
+
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ hr = pCryptExtOpenCER(0, 0, "dead.beef", SW_HIDE);
|
||||
+ ok(hr == S_OK, "got %#x\n", hr);
|
||||
+ ok(hr == S_OK, "got %#lx\n", hr);
|
||||
+
|
||||
+ hr = pCryptExtOpenCER(0, 0, "VeriSign Class 3 Public Primary Certification Authority - G4.txt", SW_SHOW);
|
||||
+ ok(hr == S_OK, "got %#x\n", hr);
|
||||
+ ok(hr == S_OK, "got %#lx\n", hr);
|
||||
+}
|
||||
+
|
||||
+START_TEST(cryptext)
|
||||
@@ -227,5 +227,5 @@ index 00000000000..cc62a772b59
|
||||
+ test_CryptExtOpenCER();
|
||||
+}
|
||||
--
|
||||
2.33.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -44,7 +44,7 @@ index e826cc89c1e..a4815f24958 100644
|
||||
+ else if (type == DIDFT_RELAXIS) type = DIDFT_AXIS;
|
||||
+
|
||||
+ obj = dataformat_to_odf_by_type(df, inst, type);
|
||||
+ TRACE("obj %p, inst 0x%08x, type 0x%08x\n", obj, inst, type);
|
||||
+ TRACE("obj %p, inst 0x%08lx, type 0x%08lx\n", obj, inst, type);
|
||||
+ if(obj)
|
||||
+ {
|
||||
+ memcpy(&obj_df[action], obj, df->dwObjSize);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 4417ee6abe20066cb1bbc784c0705885a07b3966 Mon Sep 17 00:00:00 2001
|
||||
From fb71b7bedd8d2863a588473dc09a04dcd8b43b44 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 22:25:40 -0500
|
||||
Subject: [PATCH] kernel32/tests: Mark some existing tests as failing under
|
||||
@@ -9,27 +9,27 @@ Subject: [PATCH] kernel32/tests: Mark some existing tests as failing under
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
|
||||
index 2a47abf342c..ef900dcfc04 100644
|
||||
index 93cae1c84d5..b158ac905fd 100644
|
||||
--- a/dlls/kernel32/tests/sync.c
|
||||
+++ b/dlls/kernel32/tests/sync.c
|
||||
@@ -218,7 +218,8 @@ todo_wine
|
||||
@@ -223,7 +223,8 @@ static void test_mutex(void)
|
||||
SetLastError(0xdeadbeef);
|
||||
hOpened = OpenMutexA(GENERIC_READ | GENERIC_WRITE, FALSE, "WineTestMutex");
|
||||
ok(hOpened != NULL, "OpenMutex failed with error %d\n", GetLastError());
|
||||
ok(hOpened != NULL, "OpenMutex failed with error %ld\n", GetLastError());
|
||||
- wait_ret = WaitForSingleObject(hOpened, INFINITE);
|
||||
+ wait_ret = WaitForSingleObject(hOpened, 0);
|
||||
+todo_wine_if(getenv("WINEESYNC")) /* XFAIL: validation is not implemented */
|
||||
ok(wait_ret == WAIT_FAILED, "WaitForSingleObject succeeded\n");
|
||||
CloseHandle(hOpened);
|
||||
|
||||
@@ -249,6 +250,7 @@ todo_wine
|
||||
@@ -254,6 +255,7 @@ static void test_mutex(void)
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = ReleaseMutex(hCreated);
|
||||
+todo_wine_if(getenv("WINEESYNC")) /* XFAIL: due to the above */
|
||||
ok(!ret && (GetLastError() == ERROR_NOT_OWNER),
|
||||
"ReleaseMutex should have failed with ERROR_NOT_OWNER instead of %d\n", GetLastError());
|
||||
"ReleaseMutex should have failed with ERROR_NOT_OWNER instead of %ld\n", GetLastError());
|
||||
|
||||
--
|
||||
2.28.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 775bf85e0e0614cbfe4494d7b8c47159cae5f47a Mon Sep 17 00:00:00 2001
|
||||
From 8592fcfbee64b776ce90c5edc5e9b67350665213 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 22:40:47 -0500
|
||||
Subject: [PATCH] kernel32/tests: Add some semaphore tests.
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some semaphore tests.
|
||||
1 file changed, 97 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
|
||||
index ef900dcfc04..26ccfdd4a54 100644
|
||||
index b158ac905fd..ad6ab1adc96 100644
|
||||
--- a/dlls/kernel32/tests/sync.c
|
||||
+++ b/dlls/kernel32/tests/sync.c
|
||||
@@ -577,7 +577,10 @@ static void test_event(void)
|
||||
@@ -582,7 +582,10 @@ static void test_event(void)
|
||||
|
||||
static void test_semaphore(void)
|
||||
{
|
||||
@@ -23,8 +23,8 @@ index ef900dcfc04..26ccfdd4a54 100644
|
||||
|
||||
/* test case sensitivity */
|
||||
|
||||
@@ -619,6 +622,99 @@ static void test_semaphore(void)
|
||||
ok( GetLastError() == ERROR_INVALID_PARAMETER, "wrong error %u\n", GetLastError());
|
||||
@@ -624,6 +627,99 @@ static void test_semaphore(void)
|
||||
ok( GetLastError() == ERROR_INVALID_PARAMETER, "wrong error %lu\n", GetLastError());
|
||||
|
||||
CloseHandle( handle );
|
||||
+
|
||||
@@ -124,5 +124,5 @@ index ef900dcfc04..26ccfdd4a54 100644
|
||||
|
||||
static void test_waitable_timer(void)
|
||||
--
|
||||
2.28.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 30a65d88cd062f09f88513c377d2c7780e92e05d Mon Sep 17 00:00:00 2001
|
||||
From 8790bcd9d5ff4b2e38ca00a4ba7d1d884924b25e Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 22:59:37 -0500
|
||||
Subject: [PATCH] kernel32/tests: Add some event tests.
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some event tests.
|
||||
1 file changed, 118 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
|
||||
index 26ccfdd4a54..ea54cb069df 100644
|
||||
index ad6ab1adc96..95f51f54b83 100644
|
||||
--- a/dlls/kernel32/tests/sync.c
|
||||
+++ b/dlls/kernel32/tests/sync.c
|
||||
@@ -464,12 +464,13 @@ static void test_slist(void)
|
||||
@@ -469,12 +469,13 @@ static void test_slist(void)
|
||||
|
||||
static void test_event(void)
|
||||
{
|
||||
@@ -26,8 +26,8 @@ index 26ccfdd4a54..ea54cb069df 100644
|
||||
|
||||
/* no sd */
|
||||
handle = CreateEventA(NULL, FALSE, FALSE, __FILE__ ": Test Event");
|
||||
@@ -573,6 +574,122 @@ static void test_event(void)
|
||||
ok( ret, "QueryMemoryResourceNotification failed err %u\n", GetLastError() );
|
||||
@@ -578,6 +579,122 @@ static void test_event(void)
|
||||
ok( ret, "QueryMemoryResourceNotification failed err %lu\n", GetLastError() );
|
||||
ok( val == FALSE || val == TRUE, "wrong value %u\n", val );
|
||||
CloseHandle( handle );
|
||||
+
|
||||
@@ -150,5 +150,5 @@ index 26ccfdd4a54..ea54cb069df 100644
|
||||
|
||||
static void test_semaphore(void)
|
||||
--
|
||||
2.28.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0596227ece99953785e8165d9c983114da77721c Mon Sep 17 00:00:00 2001
|
||||
From 9d683eab1efae1c8dcd5b571e8a31ac0f13fc563 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 13 Jun 2018 23:58:01 -0500
|
||||
Subject: [PATCH] kernel32/tests: Add some tests for wait timeouts.
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] kernel32/tests: Add some tests for wait timeouts.
|
||||
1 file changed, 68 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
|
||||
index 790b7bfe797..6e4916f6bc3 100644
|
||||
index 4685b7bec06..117edf12fb6 100644
|
||||
--- a/dlls/kernel32/tests/sync.c
|
||||
+++ b/dlls/kernel32/tests/sync.c
|
||||
@@ -54,6 +54,7 @@ static BOOLEAN (WINAPI *pTryAcquireSRWLockShared)(PSRWLOCK);
|
||||
@@ -57,6 +57,7 @@ static BOOLEAN (WINAPI *pTryAcquireSRWLockShared)(PSRWLOCK);
|
||||
|
||||
static NTSTATUS (WINAPI *pNtAllocateVirtualMemory)(HANDLE, PVOID *, ULONG_PTR, SIZE_T *, ULONG, ULONG);
|
||||
static NTSTATUS (WINAPI *pNtFreeVirtualMemory)(HANDLE, PVOID *, SIZE_T *, ULONG);
|
||||
@@ -19,7 +19,7 @@ index 790b7bfe797..6e4916f6bc3 100644
|
||||
static NTSTATUS (WINAPI *pNtWaitForSingleObject)(HANDLE, BOOLEAN, const LARGE_INTEGER *);
|
||||
static NTSTATUS (WINAPI *pNtWaitForMultipleObjects)(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*);
|
||||
static PSLIST_ENTRY (__fastcall *pRtlInterlockedPushListSList)(PSLIST_HEADER list, PSLIST_ENTRY first,
|
||||
@@ -1480,11 +1481,15 @@ static HANDLE modify_handle(HANDLE handle, DWORD modify)
|
||||
@@ -1485,11 +1486,15 @@ static HANDLE modify_handle(HANDLE handle, DWORD modify)
|
||||
return ULongToHandle(tmp);
|
||||
}
|
||||
|
||||
@@ -35,9 +35,9 @@ index 790b7bfe797..6e4916f6bc3 100644
|
||||
DWORD ret;
|
||||
|
||||
signaled = CreateEventW(NULL, TRUE, TRUE, NULL);
|
||||
@@ -1569,6 +1574,68 @@ static void test_WaitForSingleObject(void)
|
||||
@@ -1574,6 +1579,68 @@ static void test_WaitForSingleObject(void)
|
||||
status = pNtWaitForSingleObject(GetCurrentThread(), FALSE, &timeout);
|
||||
ok(status == STATUS_TIMEOUT, "expected STATUS_TIMEOUT, got %08x\n", status);
|
||||
ok(status == STATUS_TIMEOUT, "expected STATUS_TIMEOUT, got %08lx\n", status);
|
||||
|
||||
+ ret = WaitForSingleObject( signaled, 0 );
|
||||
+ ok(ret == 0, "got %u\n", ret);
|
||||
@@ -104,7 +104,7 @@ index 790b7bfe797..6e4916f6bc3 100644
|
||||
CloseHandle(signaled);
|
||||
CloseHandle(nonsignaled);
|
||||
}
|
||||
@@ -3037,6 +3104,7 @@ START_TEST(sync)
|
||||
@@ -3113,6 +3180,7 @@ START_TEST(sync)
|
||||
pTryAcquireSRWLockShared = (void *)GetProcAddress(hdll, "TryAcquireSRWLockShared");
|
||||
pNtAllocateVirtualMemory = (void *)GetProcAddress(hntdll, "NtAllocateVirtualMemory");
|
||||
pNtFreeVirtualMemory = (void *)GetProcAddress(hntdll, "NtFreeVirtualMemory");
|
||||
@@ -113,5 +113,5 @@ index 790b7bfe797..6e4916f6bc3 100644
|
||||
pNtWaitForMultipleObjects = (void *)GetProcAddress(hntdll, "NtWaitForMultipleObjects");
|
||||
pRtlInterlockedPushListSList = (void *)GetProcAddress(hntdll, "RtlInterlockedPushListSList");
|
||||
--
|
||||
2.28.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -2493,7 +2493,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
+ This->hr = S_OK;
|
||||
+ else
|
||||
+ {
|
||||
+ ERR("CopyFile failed: %u\n", GetLastError());
|
||||
+ ERR("CopyFile failed: %lu\n", GetLastError());
|
||||
+ This->hr = E_FAIL;
|
||||
+ }
|
||||
+
|
||||
@@ -3076,7 +3076,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
InstallEngine *This = impl_from_IInstallEngine2(iface);
|
||||
- FIXME("(%p)->(%d %p)\n", This, index, id);
|
||||
+
|
||||
+ FIXME("(%p)->(%lu %p): stub\n", This, index, id);
|
||||
+ FIXME("(%p)->(%u %p): stub\n", This, index, id);
|
||||
+
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
@@ -3090,7 +3090,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
+ ICifComponent *comp;
|
||||
+ HRESULT hr;
|
||||
+
|
||||
+ TRACE("(%p)->(%lu %p)\n", This, index, id);
|
||||
+ TRACE("(%p)->(%u %p)\n", This, index, id);
|
||||
+
|
||||
+ if (!This->icif || !id)
|
||||
+ return E_FAIL;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f29eb0b6a2b555beea0c29e9202c218ef31311b6 Mon Sep 17 00:00:00 2001
|
||||
From 519a979a6d7c304c65f198b64495f4fd36482fbc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 26 Feb 2015 06:41:26 +0100
|
||||
Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx.
|
||||
@@ -9,38 +9,38 @@ Subject: [PATCH] kernelbase: Add support for progress callback in CopyFileEx.
|
||||
2 files changed, 71 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
|
||||
index f8e49491a7d..74c13ff11d0 100644
|
||||
index 77174d43d5b..4bd9f790cc0 100644
|
||||
--- a/dlls/kernel32/tests/file.c
|
||||
+++ b/dlls/kernel32/tests/file.c
|
||||
@@ -1169,23 +1169,17 @@ static void test_CopyFileEx(void)
|
||||
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
|
||||
@@ -1170,23 +1170,17 @@ static void test_CopyFileEx(void)
|
||||
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %ld\n", GetLastError());
|
||||
SetLastError(0xdeadbeef);
|
||||
retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
|
||||
- todo_wine
|
||||
ok(!retok, "CopyFileExA unexpectedly succeeded\n");
|
||||
- todo_wine
|
||||
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
|
||||
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %ld\n", GetLastError());
|
||||
ok(GetFileAttributesA(dest) != INVALID_FILE_ATTRIBUTES, "file was deleted\n");
|
||||
|
||||
hfile = CreateFileA(dest, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||
NULL, OPEN_EXISTING, 0, 0);
|
||||
- todo_wine
|
||||
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %d\n", GetLastError());
|
||||
ok(hfile != INVALID_HANDLE_VALUE, "failed to open destination file, error %ld\n", GetLastError());
|
||||
SetLastError(0xdeadbeef);
|
||||
retok = CopyFileExA(source, dest, copy_progress_cb, hfile, NULL, 0);
|
||||
- todo_wine
|
||||
ok(!retok, "CopyFileExA unexpectedly succeeded\n");
|
||||
- todo_wine
|
||||
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %d\n", GetLastError());
|
||||
ok(GetLastError() == ERROR_REQUEST_ABORTED, "expected ERROR_REQUEST_ABORTED, got %ld\n", GetLastError());
|
||||
- todo_wine
|
||||
ok(GetFileAttributesA(dest) == INVALID_FILE_ATTRIBUTES, "file was not deleted\n");
|
||||
|
||||
retok = CopyFileExA(source, NULL, copy_progress_cb, hfile, NULL, 0);
|
||||
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c
|
||||
index c6dc904044a..b9ba1bd7c26 100644
|
||||
index 02c2e841f85..cabbe2d17c1 100644
|
||||
--- a/dlls/kernelbase/file.c
|
||||
+++ b/dlls/kernelbase/file.c
|
||||
@@ -499,11 +499,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -500,11 +500,16 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
{
|
||||
static const int buffer_size = 65536;
|
||||
HANDLE h1, h2;
|
||||
@@ -58,7 +58,7 @@ index c6dc904044a..b9ba1bd7c26 100644
|
||||
|
||||
if (!source || !dest)
|
||||
{
|
||||
@@ -518,7 +523,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -519,7 +524,15 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
|
||||
TRACE("%s -> %s, %lx\n", debugstr_w(source), debugstr_w(dest), flags);
|
||||
|
||||
@@ -75,7 +75,7 @@ index c6dc904044a..b9ba1bd7c26 100644
|
||||
NULL, OPEN_EXISTING, 0, 0 )) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
WARN("Unable to open source %s\n", debugstr_w(source));
|
||||
@@ -526,7 +539,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -527,7 +540,7 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ index c6dc904044a..b9ba1bd7c26 100644
|
||||
{
|
||||
WARN("GetFileInformationByHandle returned error for %s\n", debugstr_w(source));
|
||||
HeapFree( GetProcessHeap(), 0, buffer );
|
||||
@@ -552,7 +565,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -553,7 +566,11 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ index c6dc904044a..b9ba1bd7c26 100644
|
||||
(flags & COPY_FILE_FAIL_IF_EXISTS) ? CREATE_NEW : CREATE_ALWAYS,
|
||||
info.FileAttributes, h1 )) == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
@@ -562,6 +579,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -563,6 +580,29 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ index c6dc904044a..b9ba1bd7c26 100644
|
||||
while (ReadFile( h1, buffer, buffer_size, &count, NULL ) && count)
|
||||
{
|
||||
char *p = buffer;
|
||||
@@ -571,13 +611,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
@@ -572,13 +612,38 @@ BOOL WINAPI CopyFileExW( const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUT
|
||||
if (!WriteFile( h2, p, count, &res, NULL ) || !res) goto done;
|
||||
p += res;
|
||||
count -= res;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5d8e7efe186c9a49005e1451ac04e4fc8f9bb2b8 Mon Sep 17 00:00:00 2001
|
||||
From 58eba4970c0ab92c7554d76eaa5e4f6571506dbc 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,11 +9,11 @@ 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 52c3036fe59..1b72f8f4466 100644
|
||||
index e9e8555c32e..32318ecdffd 100644
|
||||
--- a/dlls/kernel32/tests/process.c
|
||||
+++ b/dlls/kernel32/tests/process.c
|
||||
@@ -2541,6 +2541,69 @@ static void _create_process(int line, const char *command, LPPROCESS_INFORMATION
|
||||
ok_(__FILE__, line)(ret, "CreateProcess error %u\n", GetLastError());
|
||||
ok_(__FILE__, line)(ret, "CreateProcess error %lu\n", GetLastError());
|
||||
}
|
||||
|
||||
+#define test_assigned_proc(job, ...) _test_assigned_proc(__LINE__, job, __VA_ARGS__)
|
||||
@@ -84,30 +84,30 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
{
|
||||
@@ -2566,11 +2629,15 @@ static void test_IsProcessInJob(void)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(!out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 0);
|
||||
+ test_accounting(job, 0, 0, 0);
|
||||
|
||||
out = TRUE;
|
||||
ret = pIsProcessInJob(pi.hProcess, job2, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(!out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job2, 0);
|
||||
+ test_accounting(job2, 0, 0, 0);
|
||||
|
||||
ret = pAssignProcessToJobObject(job, pi.hProcess);
|
||||
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
|
||||
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
|
||||
@@ -2579,11 +2646,15 @@ static void test_IsProcessInJob(void)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 1, pi.dwProcessId);
|
||||
+ test_accounting(job, 1, 1, 0);
|
||||
|
||||
out = TRUE;
|
||||
ret = pIsProcessInJob(pi.hProcess, job2, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(!out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job2, 0);
|
||||
+ test_accounting(job2, 0, 0, 0);
|
||||
@@ -116,7 +116,7 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
ret = pIsProcessInJob(pi.hProcess, NULL, &out);
|
||||
@@ -2597,6 +2668,8 @@ static void test_IsProcessInJob(void)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 0);
|
||||
+ test_accounting(job, 1, 0, 0);
|
||||
@@ -126,28 +126,28 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
@@ -2613,11 +2686,15 @@ static void test_TerminateJobObject(void)
|
||||
|
||||
job = pCreateJobObjectW(NULL, NULL);
|
||||
ok(job != NULL, "CreateJobObject error %u\n", GetLastError());
|
||||
ok(job != NULL, "CreateJobObject error %lu\n", GetLastError());
|
||||
+ test_assigned_proc(job, 0);
|
||||
+ test_accounting(job, 0, 0, 0);
|
||||
|
||||
create_process("wait", &pi);
|
||||
|
||||
ret = pAssignProcessToJobObject(job, pi.hProcess);
|
||||
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
|
||||
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
|
||||
+ test_assigned_proc(job, 1, pi.dwProcessId);
|
||||
+ test_accounting(job, 1, 1, 0);
|
||||
|
||||
ret = pTerminateJobObject(job, 123);
|
||||
ok(ret, "TerminateJobObject error %u\n", GetLastError());
|
||||
ok(ret, "TerminateJobObject error %lu\n", GetLastError());
|
||||
@@ -2626,6 +2703,8 @@ static void test_TerminateJobObject(void)
|
||||
dwret = WaitForSingleObject(pi.hProcess, 1000);
|
||||
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", dwret);
|
||||
ok(dwret == WAIT_OBJECT_0, "WaitForSingleObject returned %lu\n", dwret);
|
||||
if (dwret == WAIT_TIMEOUT) TerminateProcess(pi.hProcess, 0);
|
||||
+ test_assigned_proc(job, 0);
|
||||
+ test_accounting(job, 1, 0, 0);
|
||||
|
||||
ret = GetExitCodeProcess(pi.hProcess, &dwret);
|
||||
ok(ret, "GetExitCodeProcess error %u\n", GetLastError());
|
||||
ok(ret, "GetExitCodeProcess error %lu\n", GetLastError());
|
||||
@@ -2643,6 +2722,8 @@ static void test_TerminateJobObject(void)
|
||||
ret = pAssignProcessToJobObject(job, pi.hProcess);
|
||||
ok(!ret, "AssignProcessToJobObject unexpectedly succeeded\n");
|
||||
@@ -157,41 +157,41 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
@@ -2850,11 +2931,15 @@ static void test_KillOnJobClose(void)
|
||||
@@ -2841,11 +2922,15 @@ static void test_KillOnJobClose(void)
|
||||
return;
|
||||
}
|
||||
ok(ret, "SetInformationJobObject error %u\n", GetLastError());
|
||||
ok(ret, "SetInformationJobObject error %lu\n", GetLastError());
|
||||
+ test_assigned_proc(job, 0);
|
||||
+ test_accounting(job, 0, 0, 0);
|
||||
|
||||
create_process("wait", &pi);
|
||||
|
||||
ret = pAssignProcessToJobObject(job, pi.hProcess);
|
||||
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
|
||||
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
|
||||
+ test_assigned_proc(job, 1, pi.dwProcessId);
|
||||
+ test_accounting(job, 1, 1, 0);
|
||||
|
||||
CloseHandle(job);
|
||||
|
||||
@@ -2964,6 +3049,8 @@ static HANDLE test_AddSelfToJob(void)
|
||||
@@ -2955,6 +3040,8 @@ static HANDLE test_AddSelfToJob(void)
|
||||
|
||||
ret = pAssignProcessToJobObject(job, GetCurrentProcess());
|
||||
ok(ret, "AssignProcessToJobObject error %u\n", GetLastError());
|
||||
ok(ret, "AssignProcessToJobObject error %lu\n", GetLastError());
|
||||
+ test_assigned_proc(job, 1, GetCurrentProcessId());
|
||||
+ test_accounting(job, 1, 1, 0);
|
||||
|
||||
return job;
|
||||
}
|
||||
@@ -2985,6 +3072,8 @@ static void test_jobInheritance(HANDLE job)
|
||||
@@ -2976,6 +3063,8 @@ static void test_jobInheritance(HANDLE job)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 2, GetCurrentProcessId(), pi.dwProcessId);
|
||||
+ test_accounting(job, 2, 2, 0);
|
||||
|
||||
wait_and_close_child_process(&pi);
|
||||
}
|
||||
@@ -3018,6 +3107,8 @@ static void test_BreakawayOk(HANDLE parent_job)
|
||||
@@ -3009,6 +3098,8 @@ static void test_BreakawayOk(HANDLE parent_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,18 +200,18 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
|
||||
if (ret)
|
||||
{
|
||||
@@ -3057,6 +3148,8 @@ static void test_BreakawayOk(HANDLE parent_job)
|
||||
@@ -3048,6 +3139,8 @@ static void test_BreakawayOk(HANDLE parent_job)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(!out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 1, GetCurrentProcessId());
|
||||
+ test_accounting(job, 2, 1, 0);
|
||||
|
||||
ret = pIsProcessInJob(pi.hProcess, parent_job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
@@ -3074,6 +3167,8 @@ static void test_BreakawayOk(HANDLE parent_job)
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
@@ -3065,6 +3158,8 @@ static void test_BreakawayOk(HANDLE parent_job)
|
||||
ret = pIsProcessInJob(pi.hProcess, job, &out);
|
||||
ok(ret, "IsProcessInJob error %u\n", GetLastError());
|
||||
ok(ret, "IsProcessInJob error %lu\n", GetLastError());
|
||||
ok(!out, "IsProcessInJob returned out=%u\n", out);
|
||||
+ test_assigned_proc(job, 1, GetCurrentProcessId());
|
||||
+ test_accounting(job, 2, 1, 0);
|
||||
@@ -219,5 +219,5 @@ index 52c3036fe59..1b72f8f4466 100644
|
||||
wait_and_close_child_process(&pi);
|
||||
|
||||
--
|
||||
2.30.2
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 214c0a64d5f0f3733c3e370f2a75329153617b2f Mon Sep 17 00:00:00 2001
|
||||
From bef93835ceb4a482c348b0aa6e62ce4fee5e3f35 Mon Sep 17 00:00:00 2001
|
||||
From: Zhenbo Li <litimetal@gmail.com>
|
||||
Date: Tue, 1 Jul 2014 19:45:43 +0800
|
||||
Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] mshtml: Add IHTMLLocation::hash property's getter
|
||||
2 files changed, 61 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/mshtml/htmllocation.c b/dlls/mshtml/htmllocation.c
|
||||
index 7d102044c..a6d689397 100644
|
||||
index 8f7800ff2a3..2b42939a39f 100644
|
||||
--- a/dlls/mshtml/htmllocation.c
|
||||
+++ b/dlls/mshtml/htmllocation.c
|
||||
@@ -526,8 +526,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
|
||||
@@ -524,8 +524,15 @@ static HRESULT WINAPI HTMLLocation_get_search(IHTMLLocation *iface, BSTR *p)
|
||||
static HRESULT WINAPI HTMLLocation_put_hash(IHTMLLocation *iface, BSTR v)
|
||||
{
|
||||
HTMLLocation *This = impl_from_IHTMLLocation(iface);
|
||||
@@ -32,7 +32,7 @@ index 7d102044c..a6d689397 100644
|
||||
|
||||
static HRESULT WINAPI HTMLLocation_get_hash(IHTMLLocation *iface, BSTR *p)
|
||||
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
|
||||
index e473ee0f2..242ebbeee 100644
|
||||
index ff050863b6f..2c118d89d1d 100644
|
||||
--- a/dlls/mshtml/tests/htmldoc.c
|
||||
+++ b/dlls/mshtml/tests/htmldoc.c
|
||||
@@ -5963,6 +5963,56 @@ static void test_Persist(IHTMLDocument2 *doc, IMoniker *mon)
|
||||
@@ -93,7 +93,7 @@ index e473ee0f2..242ebbeee 100644
|
||||
BOOL is_hash, DWORD dwl_flags)
|
||||
{
|
||||
@@ -6148,7 +6198,7 @@ static void test_load_history(IHTMLDocument2 *doc)
|
||||
ok(hres == S_OK, "Could not get IPersistHistory iface: %08x\n", hres);
|
||||
ok(hres == S_OK, "Could not get IPersistHistory iface: %08lx\n", hres);
|
||||
|
||||
prev_url = nav_url;
|
||||
- nav_url = L"http://test.winehq.org/tests/winehq_snapshot/#test";
|
||||
@@ -101,7 +101,7 @@ index e473ee0f2..242ebbeee 100644
|
||||
nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/";
|
||||
|
||||
SET_EXPECT(Exec_ShellDocView_138);
|
||||
@@ -7915,6 +7965,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
|
||||
@@ -8017,6 +8067,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
|
||||
nav_url = nav_serv_url = L"http://test.winehq.org/tests/winehq_snapshot/"; /* for valid prev nav_url */
|
||||
if(support_wbapp) {
|
||||
test_put_href(doc, FALSE, L"#test", L"http://test.winehq.org/tests/winehq_snapshot/#test", FALSE, TRUE, 0);
|
||||
@@ -110,5 +110,5 @@ index e473ee0f2..242ebbeee 100644
|
||||
test_refresh(doc);
|
||||
}
|
||||
--
|
||||
2.25.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -28,7 +28,7 @@ index 274db8c22b..ba02e811cc 100644
|
||||
+ break;
|
||||
+ case WM_KEYUP:
|
||||
+ {
|
||||
+ TRACE("Processing key %ld\n", lpmsg->wParam);
|
||||
+ TRACE("Processing key %I64d\n", lpmsg->wParam);
|
||||
+ if (lpmsg->wParam == VK_F5)
|
||||
+ hres = IOleCommandTarget_Exec(&This->IOleCommandTarget_iface, NULL, OLECMDID_REFRESH, 0, NULL, NULL);
|
||||
+
|
||||
@@ -38,7 +38,7 @@ index 274db8c22b..ba02e811cc 100644
|
||||
+ FIXME("Unsupported message %04x\n", lpmsg->message);
|
||||
+ }
|
||||
+
|
||||
+ TRACE("result 0x%08x\n", hres);
|
||||
+ TRACE("result 0x%08lx\n", hres);
|
||||
+ return hres;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a1b46c58e7663a0c17d5dd2fbb3cc82fde40a06c Mon Sep 17 00:00:00 2001
|
||||
From 7acf9c0e6c7f4bf86b1946778366b529a42fa660 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 1 Jun 2017 06:04:53 +0200
|
||||
Subject: [PATCH] ntdll: Fix holes in ELF mappings. (v2)
|
||||
@@ -10,10 +10,10 @@ Based on a patch by Andrew Wesie.
|
||||
2 files changed, 36 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
|
||||
index 209a2647d16..2fbb5922359 100644
|
||||
index 0c1c91750ea..c4fcf43543f 100644
|
||||
--- a/dlls/ntdll/unix/virtual.c
|
||||
+++ b/dlls/ntdll/unix/virtual.c
|
||||
@@ -1021,6 +1021,16 @@ static inline BOOL is_write_watch_range( const void *addr, size_t size )
|
||||
@@ -1210,6 +1210,16 @@ static inline BOOL is_write_watch_range( const void *addr, size_t size )
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ index 209a2647d16..2fbb5922359 100644
|
||||
/***********************************************************************
|
||||
* find_view_range
|
||||
*
|
||||
@@ -3051,6 +3061,19 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
@@ -3416,6 +3426,19 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
/* ignore fault if page is writable now */
|
||||
if (get_unix_prot( get_page_vprot( page ) ) & PROT_WRITE) ret = STATUS_SUCCESS;
|
||||
}
|
||||
@@ -51,10 +51,10 @@ index 209a2647d16..2fbb5922359 100644
|
||||
return ret;
|
||||
}
|
||||
diff --git a/dlls/psapi/tests/psapi_main.c b/dlls/psapi/tests/psapi_main.c
|
||||
index d85099455aa..be12af58311 100644
|
||||
index 519e39c3df0..c29168646e8 100644
|
||||
--- a/dlls/psapi/tests/psapi_main.c
|
||||
+++ b/dlls/psapi/tests/psapi_main.c
|
||||
@@ -195,6 +195,7 @@ todo_wine
|
||||
@@ -194,6 +194,7 @@ static void test_EnumProcessModules(void)
|
||||
static void test_GetModuleInformation(void)
|
||||
{
|
||||
HMODULE hMod = GetModuleHandleA(NULL);
|
||||
@@ -62,29 +62,29 @@ index d85099455aa..be12af58311 100644
|
||||
MODULEINFO info;
|
||||
DWORD ret;
|
||||
|
||||
@@ -214,10 +215,21 @@ static void test_GetModuleInformation(void)
|
||||
@@ -213,10 +214,21 @@ static void test_GetModuleInformation(void)
|
||||
GetModuleInformation(hpQV, hMod, &info, sizeof(info)-1);
|
||||
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected error=ERROR_INSUFFICIENT_BUFFER but got %d\n", GetLastError());
|
||||
ok(GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected error=ERROR_INSUFFICIENT_BUFFER but got %ld\n", GetLastError());
|
||||
|
||||
- SetLastError(0xdeadbeef);
|
||||
ret = GetModuleInformation(hpQV, hMod, &info, sizeof(info));
|
||||
ok(ret == 1, "failed with %d\n", GetLastError());
|
||||
ok(ret == 1, "failed with %ld\n", GetLastError());
|
||||
ok(info.lpBaseOfDll == hMod, "lpBaseOfDll=%p hMod=%p\n", info.lpBaseOfDll, hMod);
|
||||
+
|
||||
+ hMod = LoadLibraryA("shell32.dll");
|
||||
+ ok(hMod != NULL, "Failed to load shell32.dll, error: %u\n", GetLastError());
|
||||
+ ok(hMod != NULL, "Failed to load shell32.dll, error: %lu\n", GetLastError());
|
||||
+
|
||||
+ ret = GetModuleInformation(hpQV, hMod, &info, sizeof(info));
|
||||
+ ok(ret == 1, "failed with %d\n", GetLastError());
|
||||
+ ok(ret == 1, "failed with %lu\n", GetLastError());
|
||||
+ info.SizeOfImage /= sizeof(DWORD);
|
||||
+ for (tmp = (DWORD *)hMod; info.SizeOfImage; info.SizeOfImage--)
|
||||
+ counter ^= *tmp++;
|
||||
+ trace("xor of shell32: %08x\n", counter);
|
||||
+ trace("xor of shell32: %08lx\n", counter);
|
||||
+
|
||||
+ FreeLibrary(hMod);
|
||||
}
|
||||
|
||||
static BOOL check_with_margin(SIZE_T perf, SIZE_T sysperf, int margin)
|
||||
--
|
||||
2.28.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 11107a30f5ddc2065d2b254fad2d10bc158a1ebb Mon Sep 17 00:00:00 2001
|
||||
From 80cb1bf9077b1e754fc2f3426229733c3417c397 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Tue, 19 Aug 2014 22:10:49 -0600
|
||||
Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
|
||||
@@ -10,18 +10,18 @@ Subject: [PATCH] ntdll: Implement retrieving DOS attributes in
|
||||
2 files changed, 50 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d621ae6e712..3ddff238d74 100644
|
||||
index c68c5975e63..84efc670ca4 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -65,6 +65,7 @@ AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb lib
|
||||
@@ -64,6 +64,7 @@ AC_ARG_WITH(unwind, AS_HELP_STRING([--without-unwind],[do not use the libunwi
|
||||
AC_ARG_WITH(usb, AS_HELP_STRING([--without-usb],[do not use the libusb library]))
|
||||
AC_ARG_WITH(v4l2, AS_HELP_STRING([--without-v4l2],[do not use v4l2 (video capture)]))
|
||||
AC_ARG_WITH(vkd3d, AS_HELP_STRING([--without-vkd3d],[do not use vkd3d (Direct3D 12 support)]))
|
||||
AC_ARG_WITH(vulkan, AS_HELP_STRING([--without-vulkan],[do not use Vulkan]))
|
||||
+AC_ARG_WITH(xattr, AS_HELP_STRING([--without-xattr],[do not use xattr (security attributes support)]))
|
||||
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
|
||||
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
|
||||
@@ -642,6 +643,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
@@ -634,6 +635,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
|
||||
#include <sys/queue.h>
|
||||
#endif])
|
||||
|
||||
@@ -40,7 +40,7 @@ index d621ae6e712..3ddff238d74 100644
|
||||
|
||||
AC_SUBST(DLLFLAGS,"")
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index e459087af76..0b6e5d3b6a7 100644
|
||||
index a29b5cbb980..1ae4645c6fb 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -98,6 +98,9 @@
|
||||
@@ -118,5 +118,5 @@ index e459087af76..0b6e5d3b6a7 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.34.1
|
||||
|
||||
|
@@ -159,7 +159,7 @@ index 5ed116d94d9..35ae5ab854a 100644
|
||||
- nt_dest.Length = dest_len;
|
||||
+ if (flags == SYMLINK_FLAG_RELATIVE)
|
||||
+ {
|
||||
+ SIZE_T nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
|
||||
+ ULONG nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
|
||||
+ WCHAR *nt_path;
|
||||
+
|
||||
+ /* resolve the NT path of the source */
|
||||
|
@@ -1,7 +1,7 @@
|
||||
From 96a9115e57cee4a11675d1fff5125155b6b213fb Mon Sep 17 00:00:00 2001
|
||||
From 1d139a330669c7d650a95c08872e11da8d9d28f6 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
|
||||
Date: Mon, 3 May 2021 09:28:08 -0600
|
||||
Subject: ntdll: Add support for creating Unix/Linux symlinks.
|
||||
Subject: [PATCH] ntdll: Add support for creating Unix/Linux symlinks.
|
||||
|
||||
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
---
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
2 files changed, 65 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
|
||||
index 18887895e40..bff3b18ce83 100644
|
||||
index e4eb36e31b3..6f647ddcca5 100644
|
||||
--- a/dlls/ntdll/tests/file.c
|
||||
+++ b/dlls/ntdll/tests/file.c
|
||||
@@ -5390,7 +5390,9 @@ static void test_reparse_points(void)
|
||||
@@ -72,10 +72,10 @@ index 18887895e40..bff3b18ce83 100644
|
||||
/* Cleanup */
|
||||
pRtlFreeUnicodeString(&nameW);
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 752561931ab..0c2117ca801 100644
|
||||
index 323bf865631..c146fc70639 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -6031,18 +6031,18 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
@@ -6024,18 +6024,18 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
{
|
||||
BOOL src_allocated = FALSE, path_allocated = FALSE, dest_allocated = FALSE;
|
||||
BOOL nt_dest_allocated = FALSE, tempdir_created = FALSE;
|
||||
@@ -97,7 +97,7 @@ index 752561931ab..0c2117ca801 100644
|
||||
ULONG flags;
|
||||
int i;
|
||||
|
||||
@@ -6060,6 +6060,12 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
@@ -6053,6 +6053,12 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
dest = &buffer->SymbolicLinkReparseBuffer.PathBuffer[offset];
|
||||
flags = buffer->SymbolicLinkReparseBuffer.Flags;
|
||||
break;
|
||||
@@ -110,7 +110,7 @@ index 752561931ab..0c2117ca801 100644
|
||||
default:
|
||||
FIXME("stub: FSCTL_SET_REPARSE_POINT(%x)\n", buffer->ReparseTag);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
@@ -6071,6 +6077,9 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
@@ -6064,6 +6070,9 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
if ((status = server_get_unix_name( handle, &unix_src, FALSE )))
|
||||
goto cleanup;
|
||||
src_allocated = TRUE;
|
||||
@@ -119,8 +119,8 @@ index 752561931ab..0c2117ca801 100644
|
||||
+
|
||||
if (flags == SYMLINK_FLAG_RELATIVE)
|
||||
{
|
||||
SIZE_T nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
|
||||
@@ -6146,6 +6155,8 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
ULONG nt_path_len = PATH_MAX, unix_path_len = PATH_MAX;
|
||||
@@ -6139,6 +6148,8 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
if (status != STATUS_SUCCESS && status != STATUS_NO_SUCH_FILE)
|
||||
goto cleanup;
|
||||
dest_allocated = TRUE;
|
||||
@@ -129,7 +129,7 @@ index 752561931ab..0c2117ca801 100644
|
||||
/* check that the source and destination paths are the same up to the relative path */
|
||||
if (flags == SYMLINK_FLAG_RELATIVE)
|
||||
{
|
||||
@@ -6161,14 +6172,17 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
@@ -6154,14 +6165,17 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
|
||||
/* Encode the reparse tag into the symlink */
|
||||
strcpy( magic_dest, "" );
|
||||
@@ -153,5 +153,5 @@ index 752561931ab..0c2117ca801 100644
|
||||
/* Encode the type (file or directory) if NT symlink */
|
||||
if (buffer->ReparseTag == IO_REPARSE_TAG_SYMLINK)
|
||||
--
|
||||
2.17.1
|
||||
2.34.1
|
||||
|
||||
|
71
patches/ntdll-Junction_Points/0040-Fix-warnings.patch
Normal file
71
patches/ntdll-Junction_Points/0040-Fix-warnings.patch
Normal file
@@ -0,0 +1,71 @@
|
||||
From 8c6455d6be0cba8dc98a95726d9d289089c2bf67 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sat, 5 Mar 2022 11:08:23 +1100
|
||||
Subject: [PATCH] Fix warnings
|
||||
|
||||
These need to be merged into the patches above.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/file.c | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 787616aa675..ee4f31a1e38 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -6150,16 +6150,14 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
/* re-resolve the unix path for the source */
|
||||
for (;;)
|
||||
{
|
||||
- UNICODE_STRING nt_path_tmp;
|
||||
+ OBJECT_ATTRIBUTES attr;
|
||||
unix_path = malloc( unix_path_len );
|
||||
if (!unix_path)
|
||||
{
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
- nt_path_tmp.Buffer = nt_path;
|
||||
- nt_path_tmp.Length = wcslen(nt_path) * sizeof(WCHAR);
|
||||
- status = wine_nt_to_unix_file_name( &nt_path_tmp, unix_path, &unix_path_len, FALSE );
|
||||
+ status = wine_nt_to_unix_file_name( &attr, unix_path, &unix_path_len, FILE_OPEN_IF );
|
||||
if (status != STATUS_BUFFER_TOO_SMALL) break;
|
||||
free( unix_path );
|
||||
}
|
||||
@@ -6182,13 +6180,15 @@ NTSTATUS create_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer)
|
||||
/* resolve the NT path of the destination */
|
||||
for (;;)
|
||||
{
|
||||
+ OBJECT_ATTRIBUTES attr;
|
||||
+ ULONG len = unix_dest_len;
|
||||
unix_dest = malloc( unix_dest_len );
|
||||
if (!unix_dest)
|
||||
{
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
- status = wine_nt_to_unix_file_name( &nt_dest, unix_dest, &unix_dest_len, FILE_WINE_PATH );
|
||||
+ status = wine_nt_to_unix_file_name( &attr, unix_dest, &len, FILE_WINE_PATH );
|
||||
if (status != STATUS_BUFFER_TOO_SMALL) break;
|
||||
free( unix_dest );
|
||||
}
|
||||
@@ -6447,13 +6447,15 @@ NTSTATUS get_reparse_point(HANDLE handle, REPARSE_DATA_BUFFER *buffer, ULONG *si
|
||||
/* resolve the NT path */
|
||||
for (;;)
|
||||
{
|
||||
+ ULONG len;
|
||||
nt_dest = malloc( nt_dest_len * sizeof(WCHAR) );
|
||||
if (!nt_dest)
|
||||
{
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto cleanup;
|
||||
}
|
||||
- status = wine_unix_to_nt_file_name( unix_dest, nt_dest, &nt_dest_len );
|
||||
+ status = wine_unix_to_nt_file_name( unix_dest, nt_dest, &len );
|
||||
+ nt_dest_len = len;
|
||||
if (status != STATUS_BUFFER_TOO_SMALL) break;
|
||||
free( nt_dest );
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From f444edc19e67ef0a903728804f50e13ccbfac16e Mon Sep 17 00:00:00 2001
|
||||
From 82663e728099ca8f0127dcdf8d62d551eda6902c Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 28 Apr 2016 18:14:36 +0800
|
||||
Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
|
||||
@@ -9,18 +9,18 @@ Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
|
||||
2 files changed, 80 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index a9869863b44..2c2a0fda843 100644
|
||||
index 3cf58d928ae..78f9bbeb493 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -99,6 +99,7 @@ static BOOL (WINAPI *pSetThreadGroupAffinity)(HANDLE,const GROUP_AFFINITY*,GROUP
|
||||
static NTSTATUS (WINAPI *pNtSetInformationThread)(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
|
||||
static HRESULT (WINAPI *pSetThreadDescription)(HANDLE,const WCHAR *);
|
||||
@@ -102,6 +102,7 @@ static HRESULT (WINAPI *pSetThreadDescription)(HANDLE,const WCHAR *);
|
||||
static HRESULT (WINAPI *pGetThreadDescription)(HANDLE,WCHAR **);
|
||||
static PVOID (WINAPI *pRtlAddVectoredExceptionHandler)(ULONG,PVECTORED_EXCEPTION_HANDLER);
|
||||
static ULONG (WINAPI *pRtlRemoveVectoredExceptionHandler)(PVOID);
|
||||
+static NTSTATUS (WINAPI *pNtSetLdtEntries)(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
|
||||
|
||||
static HANDLE create_target_process(const char *arg)
|
||||
{
|
||||
@@ -1278,6 +1279,82 @@ static void test_GetThreadSelectorEntry(void)
|
||||
@@ -1299,6 +1300,82 @@ static void test_GetThreadSelectorEntry(void)
|
||||
ok(entry.HighWord.Bits.Granularity == 1, "expected 1, got %u\n", entry.HighWord.Bits.Granularity);
|
||||
}
|
||||
|
||||
@@ -103,15 +103,15 @@ index a9869863b44..2c2a0fda843 100644
|
||||
#endif /* __i386__ */
|
||||
|
||||
static HANDLE finish_event;
|
||||
@@ -2340,6 +2417,7 @@ static void init_funcs(void)
|
||||
X(NtQueryInformationThread);
|
||||
X(RtlGetThreadErrorMode);
|
||||
@@ -2617,6 +2694,7 @@ static void init_funcs(void)
|
||||
X(NtSetInformationThread);
|
||||
X(RtlAddVectoredExceptionHandler);
|
||||
X(RtlRemoveVectoredExceptionHandler);
|
||||
+ X(NtSetLdtEntries);
|
||||
}
|
||||
#undef X
|
||||
}
|
||||
@@ -2396,6 +2474,7 @@ START_TEST(thread)
|
||||
@@ -2673,6 +2751,7 @@ START_TEST(thread)
|
||||
test_SetThreadContext();
|
||||
test_GetThreadSelectorEntry();
|
||||
test_GetThreadContext();
|
||||
@@ -120,10 +120,10 @@ index a9869863b44..2c2a0fda843 100644
|
||||
test_QueueUserWorkItem();
|
||||
test_RegisterWaitForSingleObject();
|
||||
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
|
||||
index 320ffa68407..a52490a096b 100644
|
||||
index f8d8dd9bf28..194e9c3f3e6 100644
|
||||
--- a/dlls/ntdll/unix/signal_i386.c
|
||||
+++ b/dlls/ntdll/unix/signal_i386.c
|
||||
@@ -480,7 +480,7 @@ NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG
|
||||
@@ -2207,7 +2207,7 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
|
||||
if (reply->flags)
|
||||
info->Entry = ldt_make_entry( (void *)reply->base, reply->limit, reply->flags );
|
||||
else
|
||||
@@ -133,5 +133,5 @@ index 320ffa68407..a52490a096b 100644
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
--
|
||||
2.26.2
|
||||
2.34.1
|
||||
|
||||
|
@@ -1,107 +1,110 @@
|
||||
From aea7dcfb0b09794b4925c5e8f0ca2a28b783e8f1 Mon Sep 17 00:00:00 2001
|
||||
From 8671f494a85acab0f8620bb4462d641f6fd97111 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Wesie <awesie@gmail.com>
|
||||
Date: Mon, 27 Apr 2020 15:32:22 +0300
|
||||
Subject: [PATCH] kernel32/tests, psapi/tests: Update tests.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/virtual.c | 19 ++-----------------
|
||||
dlls/kernel32/tests/virtual.c | 25 +++++--------------------
|
||||
dlls/psapi/tests/psapi_main.c | 5 +++++
|
||||
2 files changed, 7 insertions(+), 17 deletions(-)
|
||||
2 files changed, 10 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c
|
||||
index f576d132d8b..70824d771ed 100644
|
||||
index 365194b9065..6c5d6991737 100644
|
||||
--- a/dlls/kernel32/tests/virtual.c
|
||||
+++ b/dlls/kernel32/tests/virtual.c
|
||||
@@ -3572,9 +3572,7 @@ static void test_CreateFileMapping_protection(void)
|
||||
@@ -3604,9 +3604,7 @@ static void test_CreateFileMapping_protection(void)
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = VirtualQuery(base, &info, sizeof(info));
|
||||
ok(ret, "VirtualQuery failed %d\n", GetLastError());
|
||||
ok(ret, "VirtualQuery failed %ld\n", GetLastError());
|
||||
- /* FIXME: remove the condition below once Wine is fixed */
|
||||
- todo_wine_if (td[i].prot == PAGE_WRITECOPY || td[i].prot == PAGE_EXECUTE_WRITECOPY)
|
||||
- ok(info.Protect == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, info.Protect, td[i].prot_after_write);
|
||||
+ ok(info.Protect == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, info.Protect, td[i].prot_after_write);
|
||||
- ok(info.Protect == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, info.Protect, td[i].prot_after_write);
|
||||
+ ok(info.Protect == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, info.Protect, td[i].prot_after_write);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -3588,9 +3586,7 @@ static void test_CreateFileMapping_protection(void)
|
||||
@@ -3620,9 +3618,7 @@ static void test_CreateFileMapping_protection(void)
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = VirtualProtect(base, si.dwPageSize, PAGE_NOACCESS, &old_prot);
|
||||
ok(ret, "%d: VirtualProtect error %d\n", i, GetLastError());
|
||||
ok(ret, "%ld: VirtualProtect error %ld\n", i, GetLastError());
|
||||
- /* FIXME: remove the condition below once Wine is fixed */
|
||||
- todo_wine_if (td[i].prot == PAGE_WRITECOPY || td[i].prot == PAGE_EXECUTE_WRITECOPY)
|
||||
- ok(old_prot == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, old_prot, td[i].prot_after_write);
|
||||
+ ok(old_prot == td[i].prot_after_write, "%d: got %#x != expected %#x\n", i, old_prot, td[i].prot_after_write);
|
||||
- ok(old_prot == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, old_prot, td[i].prot_after_write);
|
||||
+ ok(old_prot == td[i].prot_after_write, "%ld: got %#lx != expected %#lx\n", i, old_prot, td[i].prot_after_write);
|
||||
|
||||
UnmapViewOfFile(base);
|
||||
}
|
||||
@@ -3943,15 +3939,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
@@ -3975,15 +3971,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
continue;
|
||||
}
|
||||
|
||||
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(ret, "VirtualProtect error %d, map %#x, view %#x, requested prot %#x\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
|
||||
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx, requested prot %#lx\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
|
||||
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(old_prot == prev_prot, "got %#x, expected %#x\n", old_prot, prev_prot);
|
||||
ok(old_prot == prev_prot, "got %#lx, expected %#lx\n", old_prot, prev_prot);
|
||||
prev_prot = actual_prot;
|
||||
|
||||
ret = VirtualQuery(base, &info, sizeof(info));
|
||||
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
|
||||
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
|
||||
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
ok(info.Protect == actual_prot,
|
||||
"VirtualProtect wrong prot, map %#x, view %#x, requested prot %#x got %#x\n",
|
||||
"VirtualProtect wrong prot, map %#lx, view %#lx, requested prot %#lx got %#lx\n",
|
||||
page_prot[i], view[j].prot, page_prot[k], info.Protect );
|
||||
@@ -4006,15 +3999,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
@@ -4038,15 +4031,12 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
if (!anon_mapping && is_compatible_protection(alloc_prot, PAGE_WRITECOPY))
|
||||
{
|
||||
ret = VirtualProtect(base, sec_flags & SEC_IMAGE ? si.dwPageSize : 2*si.dwPageSize, PAGE_WRITECOPY, &old_prot);
|
||||
- todo_wine_if(readonly && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(ret, "VirtualProtect error %d, map %#x, view %#x\n", GetLastError(), page_prot[i], view[j].prot);
|
||||
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx\n", GetLastError(), page_prot[i], view[j].prot);
|
||||
if (ret) *(DWORD*)base = 0xdeadbeef;
|
||||
ret = VirtualQuery(base, &info, sizeof(info));
|
||||
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
|
||||
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
- todo_wine
|
||||
ok(info.Protect == PAGE_READWRITE, "VirtualProtect wrong prot, map %#x, view %#x got %#x\n",
|
||||
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
ok(info.Protect == PAGE_READWRITE, "VirtualProtect wrong prot, map %#lx, view %#lx got %#lx\n",
|
||||
page_prot[i], view[j].prot, info.Protect );
|
||||
- todo_wine_if (!(sec_flags & SEC_IMAGE))
|
||||
ok(info.RegionSize == si.dwPageSize, "wrong region size %#lx after write, map %#x, view %#x got %#x\n",
|
||||
ok(info.RegionSize == si.dwPageSize, "wrong region size %#Ix after write, map %#lx, view %#lx got %#lx\n",
|
||||
info.RegionSize, page_prot[i], view[j].prot, info.Protect );
|
||||
|
||||
@@ -4025,7 +4015,6 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
@@ -4057,7 +4047,6 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
{
|
||||
ret = VirtualQuery((char*)base + si.dwPageSize, &info, sizeof(info));
|
||||
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
|
||||
ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
- todo_wine_if(readonly && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(info.Protect == PAGE_WRITECOPY, "wrong prot, map %#x, view %#x got %#x\n",
|
||||
ok(info.Protect == PAGE_WRITECOPY, "wrong prot, map %#lx, view %#lx got %#lx\n",
|
||||
page_prot[i], view[j].prot, info.Protect);
|
||||
}
|
||||
@@ -4045,14 +4034,11 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
@@ -4077,14 +4066,11 @@ static void test_mapping( HANDLE hfile, DWORD sec_flags, BOOL readonly )
|
||||
continue;
|
||||
}
|
||||
|
||||
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(ret, "VirtualProtect error %d, map %#x, view %#x, requested prot %#x\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
|
||||
ok(ret, "VirtualProtect error %ld, map %#lx, view %#lx, requested prot %#lx\n", GetLastError(), page_prot[i], view[j].prot, page_prot[k]);
|
||||
- todo_wine_if(readonly && page_prot[k] == PAGE_WRITECOPY && view[j].prot != PAGE_WRITECOPY)
|
||||
ok(old_prot == prev_prot, "got %#x, expected %#x\n", old_prot, prev_prot);
|
||||
ok(old_prot == prev_prot, "got %#lx, expected %#lx\n", old_prot, prev_prot);
|
||||
|
||||
ret = VirtualQuery(base, &info, sizeof(info));
|
||||
ok(ret, "%d: VirtualQuery failed %d\n", j, GetLastError());
|
||||
- ok(ret, "%ld: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
- todo_wine_if( map_prot_written( page_prot[k] ) != actual_prot )
|
||||
+ ok(ret, "%d: VirtualQuery failed %ld\n", j, GetLastError());
|
||||
ok(info.Protect == map_prot_written( page_prot[k] ),
|
||||
"VirtualProtect wrong prot, map %#x, view %#x, requested prot %#x got %#x\n",
|
||||
"VirtualProtect wrong prot, map %#lx, view %#lx, requested prot %#lx got %#lx\n",
|
||||
page_prot[i], view[j].prot, page_prot[k], info.Protect );
|
||||
@@ -4093,7 +4079,6 @@ static void test_mappings(void)
|
||||
@@ -4125,7 +4111,6 @@ static void test_mappings(void)
|
||||
SetFilePointer(hfile, 0, NULL, FILE_BEGIN);
|
||||
ok(ReadFile(hfile, &data, sizeof(data), &num_bytes, NULL), "ReadFile failed\n");
|
||||
ok(num_bytes == sizeof(data), "num_bytes = %d\n", num_bytes);
|
||||
ok(num_bytes == sizeof(data), "num_bytes = %ld\n", num_bytes);
|
||||
- todo_wine
|
||||
ok(!data, "data = %x\n", data);
|
||||
ok(!data, "data = %lx\n", data);
|
||||
|
||||
CloseHandle( hfile );
|
||||
diff --git a/dlls/psapi/tests/psapi_main.c b/dlls/psapi/tests/psapi_main.c
|
||||
index c92423ee193..d85099455aa 100644
|
||||
index 185a4062092..519e39c3df0 100644
|
||||
--- a/dlls/psapi/tests/psapi_main.c
|
||||
+++ b/dlls/psapi/tests/psapi_main.c
|
||||
@@ -830,6 +830,8 @@ static void test_QueryWorkingSetEx(void)
|
||||
@@ -803,6 +803,8 @@ static void test_QueryWorkingSetEx(void)
|
||||
DWORD prot;
|
||||
BOOL ret;
|
||||
|
||||
@@ -110,16 +113,16 @@ index c92423ee193..d85099455aa 100644
|
||||
if (pQueryWorkingSetEx == NULL)
|
||||
{
|
||||
win_skip("QueryWorkingSetEx not found, skipping tests\n");
|
||||
@@ -848,6 +850,9 @@ static void test_QueryWorkingSetEx(void)
|
||||
@@ -821,6 +823,9 @@ static void test_QueryWorkingSetEx(void)
|
||||
check_QueryWorkingSetEx(addr, "exe,readonly1", 0, 0, 1, TRUE);
|
||||
|
||||
*(volatile char *)addr;
|
||||
+ check_QueryWorkingSetEx(addr, "exe,readonly2", 1, PAGE_READONLY, 1, FALSE);
|
||||
+
|
||||
+ ret = VirtualProtect(addr, 0x1000, PAGE_EXECUTE_READWRITE, &prot);
|
||||
ok(ret, "VirtualProtect failed with %d\n", GetLastError());
|
||||
ok(ret, "VirtualProtect failed with %ld\n", GetLastError());
|
||||
check_QueryWorkingSetEx(addr, "exe,readonly2", 1, PAGE_READONLY, 1, FALSE);
|
||||
|
||||
--
|
||||
2.27.0
|
||||
2.35.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 31cfae4fcd5b142a4d1b70ad33159c3bddd42181 Mon Sep 17 00:00:00 2001
|
||||
From 1fbb361023f9474a3522762aae32ad64d056e37e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
|
||||
Date: Fri, 24 May 2019 15:09:35 +0300
|
||||
Subject: [PATCH] ntdll/server: Mark drive_c as case-insensitive when created
|
||||
@@ -9,27 +9,25 @@ Content-Transfer-Encoding: 8bit
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47099
|
||||
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
|
||||
---
|
||||
dlls/ntdll/unix/server.c | 45 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 45 insertions(+)
|
||||
dlls/ntdll/unix/server.c | 43 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 43 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
|
||||
index 0952b54f4ef..f998ce35dd0 100644
|
||||
index ab9d99c4f47..f40897757e3 100644
|
||||
--- a/dlls/ntdll/unix/server.c
|
||||
+++ b/dlls/ntdll/unix/server.c
|
||||
@@ -49,6 +49,12 @@
|
||||
@@ -49,6 +49,10 @@
|
||||
#ifdef HAVE_SYS_UN_H
|
||||
#include <sys/un.h>
|
||||
#endif
|
||||
+#ifdef HAVE_SYS_IOCTL_H
|
||||
+#include <sys/ioctl.h>
|
||||
+#endif
|
||||
+#ifdef HAVE_LINUX_IOCTL_H
|
||||
+#include <linux/ioctl.h>
|
||||
+#endif
|
||||
#ifdef HAVE_SYS_PRCTL_H
|
||||
# include <sys/prctl.h>
|
||||
#endif
|
||||
@@ -83,6 +89,22 @@
|
||||
@@ -83,6 +87,22 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(server);
|
||||
|
||||
@@ -52,7 +50,7 @@ index 0952b54f4ef..f998ce35dd0 100644
|
||||
#ifndef MSG_CMSG_CLOEXEC
|
||||
#define MSG_CMSG_CLOEXEC 0
|
||||
#endif
|
||||
@@ -1140,6 +1162,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
|
||||
@@ -1137,6 +1157,28 @@ static const char *init_server_dir( dev_t dev, ino_t ino )
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +79,7 @@ index 0952b54f4ef..f998ce35dd0 100644
|
||||
/***********************************************************************
|
||||
* setup_config_dir
|
||||
*
|
||||
@@ -1176,6 +1220,7 @@ static int setup_config_dir(void)
|
||||
@@ -1173,6 +1215,7 @@ static int setup_config_dir(void)
|
||||
if (!mkdir( "dosdevices", 0777 ))
|
||||
{
|
||||
mkdir( "drive_c", 0777 );
|
||||
@@ -90,5 +88,5 @@ index 0952b54f4ef..f998ce35dd0 100644
|
||||
symlink( "/", "dosdevices/z:" );
|
||||
}
|
||||
--
|
||||
2.33.0
|
||||
2.34.1
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user