The test for ISmbiosInformationStatics_get_SerialNumber is broken on Window 10 testbot VMs, presumably because they don't have a serial number? It results in an HRESULT of E_UNEXPECTED. I added a broken test case for it. I'm assuming that normal installations of Windows return a valid serial number or at least something like "Not Specified" and not NULL. Also, on my Linux OS running cat /sys/class/dmi/id/product_serial returns "To be filled by O.E.M". So I added a fallback to return 0 as the number. Or is it fine to just return whatever string is found?
On the Windows 8 VMs, the test crashes at line 75, hr = ISmbiosInformationStatics_get_SerialNumber( smbios_statics, &serial ). Not sure what I should do in this case. I was hoping for a flag that checks if the VM is Windows 8, but there doesn't seem to be one. Should I wrap the test in if (0) or is there an alternative way?
Another weird thing is the test fails prematurely on only the 32-bit version of debian11b, saying that the runtimeclass is not registered. I'm assuming it's an issue with the testbot. Debian11 32 bit runs fine.
--
v8: windows.system.profile.systemmanufacturers: Implement ISmbiosInformationStatics_get_SerialNumber.
windows.system.profile.systemmanufacturers/tests: Add ISmbiosInformationStatics_get_SerialNumber tests.
windows.system.profile.systemmanufacturers: Stub ISmbiosInformationStatics interface.
windows.system.profile.systemmanufacturers: Add stub DLL.
include: Add windows.system.profile.systemmanufacturers.idl file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1588
On Wed Jan 25 20:25:14 2023 +0000, Zebediah Figura wrote:
> changed this line in [version 3 of the diff](/wine/wine/-/merge_requests/2010/diffs?diff_id=29048&start_sha=8eae0afb08c6e06634aa471605d9f9800d3144c8#0e3bdc3483a2521905df15e2af3431db3ab47a56_2279_2278)
Wow, okay, thank you SPIR-V for the excellent choices in naming.
Sent a v3 with this changed to 11.0, thanks :-)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2010#note_21856
--
v2: wined3d: Disable 64-bit integer support.
wined3d: Require shader cull distance support to create a feature level 10.0 device.
wined3d: Require shader clip distance support to create a feature level 10.0 device.
wined3d: Require gather offset support to create a feature level 10.1 device.
wined3d: Require fragment shader image stores and atomics to create a feature level 10.0 device.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53176
1) The async test is broken on Windows 10 1507. This appears to be a trend among WinRT dlls. I'm thinking that we can add macro definitions for each testbot VM to avoid having to skip tests that would otherwise be working fine, and just greater control over tests in general.
2) The provider file that contains `interface IWineAsyncInfoImpl` is likely going to be reused again in the future. Perhaps a new file can be added in the include/wine folder to prevent duplicate code? I can do this in a separate merge request and cleanup the existing provider files.
3) All the check_bool_async tests return a random async_id so I skipped them. Testbot example: https://testbot.winehq.org/JobDetails.pl?Key=127232&f208=exe32.report#k208
--
v7: cryptowinrt/tests: Add IKeyCredentialManagerStatics_IsSupportedAsync tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1714
FFXIV depends on this. It calls SetFullscreenState when it receives WM_WINDOWPOSCHANGED. Through luck the recursion aborts after two calls. The user-visible bug is that after leaving fullscreen, the game's window is still TOPMOST because we overwrite the stored pre-fullscreen window flags.
--
v2: dxgi/tests: Test nested SetFullscreenState from the same thread.
dxgi/tests: Test nested fullscreen application from different thread.
dxgi: Catch nested SetFullscreenState invocations.
dxgi/tests: Run test_swapchain_window_messages on d3d12.
dxgi/tests: Run test_resize_target_wndproc on d3d12 too.
dxgi/tests: Fix UnregisterClass call in test_resize_target_wndproc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1964
copy_propagation_transform_object_load() currently retrieves true, which
indicates that there was progress, even if the input dereference remains
the same.
This can happen repeatedly if an uninitialized object is copied onto
itself, as in the tests added in this patch. This results on the
compilation getting stuck on an endless loop.
This patch checks if the deref didn't change, to retrieve false in that
case.
--
v8: vkd3d-shader/hlsl: Avoid infinite loop and invalid derefs in copy-prop.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/59
copy_propagation_transform_object_load() currently retrieves true, which
indicates that there was progress, even if the input dereference remains
the same.
This can happen repeatedly if an uninitialized object is copied onto
itself, as in the tests added in this patch. This results on the
compilation getting stuck on an endless loop.
This patch checks if the deref didn't change, to retrieve false in that
case.
--
v7: vkd3d-shader/hlsl: Avoid infinite loop in copy propagation.
tests: Test correct copy-prop object replacement.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/59
The test for ISmbiosInformationStatics_get_SerialNumber is broken on Window 10 testbot VMs, presumably because they don't have a serial number? It results in an HRESULT of E_UNEXPECTED. I added a broken test case for it. I'm assuming that normal installations of Windows return a valid serial number or at least something like "Not Specified" and not NULL. Also, on my Linux OS running cat /sys/class/dmi/id/product_serial returns "To be filled by O.E.M". So I added a fallback to return 0 as the number. Or is it fine to just return whatever string is found?
On the Windows 8 VMs, the test crashes at line 75, hr = ISmbiosInformationStatics_get_SerialNumber( smbios_statics, &serial ). Not sure what I should do in this case. I was hoping for a flag that checks if the VM is Windows 8, but there doesn't seem to be one. Should I wrap the test in if (0) or is there an alternative way?
Another weird thing is the test fails prematurely on only the 32-bit version of debian11b, saying that the runtimeclass is not registered. I'm assuming it's an issue with the testbot. Debian11 32 bit runs fine.
--
v7: windows.system.profile.systemmanufacturers: Implement ISmbiosInformationStatics_get_SerialNumber.
windows.system.profile.systemmanufacturers/tests: Add ISmbiosInformationStatics_get_SerialNumber tests.
windows.system.profile.systemmanufacturers: Stub ISmbiosInformationStatics interface.
windows.system.profile.systemmanufacturers: Add stub DLL.
include: Add windows.system.profile.systemmanufacturers.idl file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1588
Today, test_reuseaddr() triggers a buffer overflow when accept()-ing an
IPv6 client due to the supplied peer name buffer (`struct sockaddr`)
being too small to hold an AF_INET6 address (`struct sockaddr_in6`).
Fix this by changing the type of `saddr` from `struct sockaddr` to
`struct sockaddr_storage`.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54376
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2026
> (The TlsIndex field in the LDR_DATA_TABLE_ENTRY structure appears to be unused except as a flag that the module has TLS (being always set to -1), at least as far back as Windows XP. It is worth mentioning that the WINE implementation of implicit TLS incorrectly uses TlsIndex as the real module TLS index, so it may be unreliable to assume that it is always -1 if you care about working on WINE.)
>
> \- http://www.nynaeve.net/?p=186
and the "links to that article but still doesn't work in wine" award goes to... [the D runtime](https://github.com/dlang/dmd/blob/6bf60ea0eb174631ede0074a77d3898d…! (Admittedly, there aren't too many ways to do what they're trying to do.)
With this, the D runtime will now work in Wine, even if in a dll loaded into an exe with no tls (which gets it the tls index 0)
~~The changes to the debugger are a bit icky, a possible alternative is to find some other easily-debugger-accessible place to stuff the tls index.~~ Resolved
--
v9: ntdll: TlsIndex should not actually contain tls indices
winedbg: Fix read access to variables with thread local storage.
winedbg: Track loaded modules
https://gitlab.winehq.org/wine/wine/-/merge_requests/1578
First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v10: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Partially implement the speech recognizer state.
windows.media.speech: Add an audio capturing system.
windows.media.speech: Allow the recognition session worker to be paused.
windows.media.speech/tests: Check if stopping the session resets the paused state.
windows.media.speech: Add a worker thread to the recognition session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948
--
v3: vbscript: Implement SID_GetCaller for QueryService.
vbscript: Add a ServiceProvider stub.
jscript: Implement SID_GetCaller for QueryService.
mshtml: Set SCRIPTPROP_ABBREVIATE_GLOBALNAME_RESOLUTION properly.
mshtml: Implement location props when there's no URI.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1733
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54353
There are two issues which the patchset is fixing:
1. Using cert's serial is not quite right, we need to hash full certificate contents as the check result depends on the other certificate data.
2. The check result also depends on revocation check parameters. I think currently it is only issuer certificate from the parameters which can affect the result which is cached.
--
v2: cryptnet: Also hash issuer cert for cache id.
cryptnet: Use cert data hash as cache id instead of serial number.
cryptnet: Cache revocation status in verify_cert_revocation().
https://gitlab.winehq.org/wine/wine/-/merge_requests/2009
The last major feature for compute shader support.
The tests are a bit ad-hoc, and ideally would be extended beyond d3d12. The
nonuniform readback is what makes this difficult.
My plan is to refactor the shader runner so that it exposes an interface usable
both from a file interpreter frontend and also directly from C code. That would
allow, in this case, declaring the shaders and drawing as a shader_test file
would, but then making use of C loops to test the readback. It would also make
it generally easier to port loop-based tests in e.g. d3d12.c.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/64