On Wed Jun 18 08:29:18 2025 +0000, Nikolay Sivov wrote:
> This will change behavior for all the tests. We can create this file
> dynamically as an external manifest, then restart as a child process.
Right. That would be better. Let's do that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106999
On Wed Jun 18 08:27:27 2025 +0000, Zhiyi Zhang wrote:
> I see. In that case, you can leave it and keep the longPathAware
> manifest in the kernel32 test resource.
This will change behavior for all the tests. We can create this file dynamically as an external manifest, then restart as a child process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106998
On Wed Jun 18 08:25:18 2025 +0000, Yongjie Yao wrote:
> When testing on windows 11, handle=CreateActCtxW() ->
> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the
> longPathAware is true, but CopyFileExA still can't support long path.
> When I create a file with kernel32_test.exe.manifest as filename and
> test again, CopyFileExA can support long path. So I guess it is just
> checked at process startup.
I see. In that case, you can leave it and keep the longPathAware manifest in the kernel32 test resource.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106997
On Mon Jun 16 10:56:00 2025 +0000, Zhiyi Zhang wrote:
> Please test if activating the longPathAware manifest dynamically sets
> IsLongPathAwareProcess, or if it is just checked at process startup.
> MSDN says the LongPathsEnabled registry value is cached. However, it
> doesn't say if the manifest is cached. This could be a local test.
When testing on windows 11, handle=CreateActCtxW() -> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the longPathAware is true, but CopyFileExA still can't support long path. When I create a file with kernel32_test.exe.manifest and test again, CopyFileExA can support long path. So I guess it is just checked at process startup.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106996
For React Native.
--
v3: kernel32/tests: Add tests for RtlActivateActivationContextUnsafe() and RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlActivateActivationContextUnsafeFast().
ntdll: Set and check 0x8 flag for activation context stack frames.
kernel32/tests: Add tests for normal activation context stack frame flags.
ntdll: Use explicit ACTIVATION_CONTEXT type instead of HANDLE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326
* * *
While investigating another problem, I found we are handling empty attributes list differently compared native.
But the actual problem is this, shouldn't `CRYPT_SizeOfAttributes` add `sizeof(CRYPT_ATTRIBUTES)` to `size`? Basically we return `size == 0` when the attributes list is empty, so the caller allocates zero bytes and call `GetParam` again, and we write out-of-bound trying to `out->cAttrs = in->cAttrs` in `CRYPT_ConstructAttributes`. (Of course with this MR this problem no longer show up, but the question still stands.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8350
CW* masks in window_set_config() are from comparing against the old rect from data->pending_state.rect,
not the actual X11 window rectangle. So it's still possible that after removing __NET_WM_STATE_FULLSCREEN,
WM moves the window behind Wine's back. Then window_set_config() calculates CW* masks and calls
XReconfigureWMWindow(), assuming the old rect is still the actual X11 window rect. As the result,
some rectangle updates might be missed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8128