Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: windowscodecs: Fix a typo in metadata readers registration helper.
windowscodecs/metadata: Add a stub for WICIfdMetadataWriter.
windowscodecs/metadata: Add a stub for WICExifMetadataWriter.
windowscodecs/metadata: Add a stub for WICGpsMetadataWriter.
windowscodecs/metadata: Add a stub for WICUnknownMetadataWriter.
windowscodecs/metadata: Add registration information for the "Unknown" writer.
windowscodecs: Add a stub for IWICMetadataWriterInfo.
windowscodecs: Move an hkey handle to the component info base structure.
windowscodecs: Move component info registry key cleanup to a common failure path.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7254
"DIR /o" (no order specifier after /o) hasn't functioned the same as it does on Windows. This change makes the functionality of /o by itself equivalent to behavior on Windows.
--
v18: programs/cmd: Remove @todo_wine@ from working tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131
"DIR /o" (no order specifier after /o) hasn't functioned the same as it does on Windows. This change makes the functionality of /o by itself equivalent to behavior on Windows.
--
v17: programs/cmd: Remove @todo_wine@ from working tests
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131
This MR enforces alignment of TLS slots as described in PE file.
I'm not 100% happy with the deallocation scheme, as it could be slow.
If someone has a better idea, be welcome!
Didn't open the option to introduce helpers in heap.c (but maybe that's the way to go).
--
v2: ntdll: Enforce the alignment of TLS directory entries.
kernel32/tests: Add a test about TLS slot alignment.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7251
On Tue Feb 4 18:49:40 2025 +0000, eric pouech wrote:
> something is not correct. you should get something like:
> ```
> Test output:
> cmd.exe:batch start programs/cmd/tests/batch.c
> 0208:err:start:parse_command_line Unknown option 'L"/foobar"'
> 02a0:err:start:parse_command_line Unknown option 'L"/foobar"'
> batch.c:454: running TEST_BUILTINS.BAT test...
> batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line
> 22 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
> batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line
> 61 (got 'SUCCESS 1', wanted 'FAILURE 1')
> batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line
> 64 (got 'SUCCESS 0', wanted 'SUCCESS 666')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 69 (got 'FAILURE 1', wanted 'a@space@')
> batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line
> 70 (got '---', wanted 'b@space@')
> batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line
> 71 (got '---', wanted 'FAILURE 1')
> batch.c:340: Test marked todo: excess characters on line 152 (got
> 'SUCCESS 0', wanted 'SUCCESS@space@')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 161 (got 'FAILURE 1', wanted 'SUCCESS 666')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 162 (got 'FAILURE 1', wanted 'SUCCESS 666')
> batch.c:337: Test marked todo: unexpected end of line 212 (got 'SUCCESS
> 666', wanted '@formfeed@SUCCESS 666')
> batch.c:337: Test marked todo: unexpected end of line 213 (got 'SUCCESS
> 666', wanted '@formfeed@SUCCESS 666')
> batch.c:454: running TEST_BUILTINS.CMD test...
> batch.c:348: Test marked todo: unexpected char 0x26 position 71 in line
> 93 (got 'C:\users\eric\AppData\Local\Temp\wct>(echo the @ character
> chains until&&@echo we leave the current depth||( ', wanted '@pwd@>(echo
> the @ character chains until && ) && echo and can hide brackets || () ||@space@')
> batch.c:348: Test marked todo: unexpected char 0x65 position 0 in line
> 94 (got 'echo hidden', wanted 'the @ character chains until')
> batch.c:348: Test marked todo: unexpected char 0x29 position 0 in line
> 95 (got '))&&echo and can hide brackets||(@echo command hidden)||@(echo
> brackets hidden)', wanted 'we leave the current depth')
> batch.c:348: Test marked todo: unexpected char 0x74 position 0 in line
> 96 (got 'the @ character chains until', wanted 'and can hide brackets')
> batch.c:348: Test marked todo: unexpected char 0x77 position 0 in line
> 97 (got 'we leave the current depth', wanted '---')
> batch.c:348: Test marked todo: unexpected char 0x61 position 0 in line
> 97 (got 'and can hide brackets', wanted '---')
> batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line
> 138 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 echo foo ',
> wanted '@pwd@>if 1 == 1 echo foo@space@')
> batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line
> 141 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 @echo bar ',
> wanted '@pwd@>if 1 == 1@space@')
> batch.c:337: Test marked todo: unexpected end of line 428 (got 'j2',
> wanted 'j2@space@')
> batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line
> 473 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
> batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line
> 512 (got 'SUCCESS 1', wanted 'FAILURE 1')
> batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line
> 515 (got 'SUCCESS 0', wanted 'SUCCESS 666')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 520 (got 'FAILURE 1', wanted 'a@space@')
> batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line
> 521 (got '---', wanted 'b@space@')
> batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line
> 522 (got '---', wanted 'FAILURE 1')
> batch.c:340: Test marked todo: excess characters on line 603 (got
> 'SUCCESS 0', wanted 'SUCCESS@space@')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 612 (got 'FAILURE 1', wanted 'SUCCESS 666')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 613 (got 'FAILURE 1', wanted 'SUCCESS 666')
> batch.c:337: Test marked todo: unexpected end of line 663 (got 'SUCCESS
> 666', wanted '@formfeed@SUCCESS 666')
> batch.c:337: Test marked todo: unexpected end of line 664 (got 'SUCCESS
> 666', wanted '@formfeed@SUCCESS 666')
> batch.c:348: Test marked todo: unexpected char 0x5e position 5 in line
> 849 (got 'after^', wanted 'after!')
> batch.c:348: Test marked todo: unexpected char 0x20 position 5 in line
> 1773 (got '
> C:\users\eric\AppData\Local\Temp\wct\foobar\baz', wanted '
>
>
>
>
> R@spaces@@drive@@path@foobar\baz@or_broken@@spaces@@drive@@path@foobar\baz@or_broken@
> R I@spaces@@drive@@path@foobar\baz')
> batch.c:348: Test marked todo: unexpected char 0x6f position 1 in line
> 1801 (got ''one two three'', wanted '' one two three'@or_broken@Skipped
> as not enough permissions')
> batch.c:348: Test marked todo: unexpected char 0x30 position 0 in line
> 1830 (got '0', wanted '1')
> batch.c:340: Test marked todo: excess characters on line 1853 (got 'cp3
> ', wanted 'cp3')
> batch.c:340: Test marked todo: excess characters on line 1942 (got
> 'ErrLev: 0', wanted 'ErrLev:@space@')
> batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line
> 1945 (got 'ErrLev: 0', wanted 'ErrLev:@space@@or_broken@ErrLev: 0')
> batch.c:348: Test marked todo: unexpected char 0x35 position 1 in line
> 2062 (got '25', wanted '21')
> batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line
> 2064 (got 'Failure', wanted 'Success')
> batch.c:454: running TEST_CMDLINE.CMD test...
> 01bc:batch: 2490 tests executed (40 marked as todo, 0 as flaky, 0
> failures), 0 skipped.
> cmd.exe:batch:01bc done (0) in 37s 5389B
> cmd.exe:directory start programs/cmd/tests/directory.c
> 0754:directory: 24 tests executed (0 marked as todo, 0 as flaky, 0
> failures), 0 skipped.
> cmd.exe:directory:0754 done (0) in 0s 90B
> ```
I see; I need to remove the @todo_wine@ from the passing tests.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93605
On Tue Feb 4 14:36:04 2025 +0000, Helix Graziani wrote:
> Even though the tests for IShellWindows are in shell32, the EA App gets
> it from ieframe.
I think it's because we register it in a wrong way, see `HKEY_CLASSES_ROOT\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}`. On Wine, it contains `InprocServer32` key, while on Windows it uses `LocalServer32`. We should probably remove `threading()` attribute from `ShellWindows` coclass in `exdisp.idl` and have `.rgs` file in shell registering it manually.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7221#note_93565
something is not correct. you should get something like:
```
Test output:
cmd.exe:batch start programs/cmd/tests/batch.c
0208:err:start:parse_command_line Unknown option 'L"/foobar"'
02a0:err:start:parse_command_line Unknown option 'L"/foobar"'
batch.c:454: running TEST_BUILTINS.BAT test...
batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line 22 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line 61 (got 'SUCCESS 1', wanted 'FAILURE 1')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 64 (got 'SUCCESS 0', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 69 (got 'FAILURE 1', wanted 'a@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 70 (got '---', wanted 'b@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 71 (got '---', wanted 'FAILURE 1')
batch.c:340: Test marked todo: excess characters on line 152 (got 'SUCCESS 0', wanted 'SUCCESS@space@')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 161 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 162 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 212 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 213 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:454: running TEST_BUILTINS.CMD test...
batch.c:348: Test marked todo: unexpected char 0x26 position 71 in line 93 (got 'C:\users\eric\AppData\Local\Temp\wct>(echo the @ character chains until&&@echo we leave the current depth||( ', wanted '@pwd@>(echo the @ character chains until && ) && echo and can hide brackets || () ||@space@')
batch.c:348: Test marked todo: unexpected char 0x65 position 0 in line 94 (got 'echo hidden', wanted 'the @ character chains until')
batch.c:348: Test marked todo: unexpected char 0x29 position 0 in line 95 (got '))&&echo and can hide brackets||(@echo command hidden)||@(echo brackets hidden)', wanted 'we leave the current depth')
batch.c:348: Test marked todo: unexpected char 0x74 position 0 in line 96 (got 'the @ character chains until', wanted 'and can hide brackets')
batch.c:348: Test marked todo: unexpected char 0x77 position 0 in line 97 (got 'we leave the current depth', wanted '---')
batch.c:348: Test marked todo: unexpected char 0x61 position 0 in line 97 (got 'and can hide brackets', wanted '---')
batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line 138 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 echo foo ', wanted '@pwd@>if 1 == 1 echo foo@space@')
batch.c:348: Test marked todo: unexpected char 0x3d position 41 in line 141 (got 'C:\users\eric\AppData\Local\Temp\wct>if 1==1 @echo bar ', wanted '@pwd@>if 1 == 1@space@')
batch.c:337: Test marked todo: unexpected end of line 428 (got 'j2', wanted 'j2@space@')
batch.c:348: Test marked todo: unexpected char 0x39 position 11 in line 473 (got 'ERRORLEVEL 9009', wanted 'ERRORLEVEL 3')
batch.c:348: Test marked todo: unexpected char 0x53 position 0 in line 512 (got 'SUCCESS 1', wanted 'FAILURE 1')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 515 (got 'SUCCESS 0', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 520 (got 'FAILURE 1', wanted 'a@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 521 (got '---', wanted 'b@space@')
batch.c:348: Test marked todo: unexpected char 0x2d position 0 in line 522 (got '---', wanted 'FAILURE 1')
batch.c:340: Test marked todo: excess characters on line 603 (got 'SUCCESS 0', wanted 'SUCCESS@space@')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 612 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 613 (got 'FAILURE 1', wanted 'SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 663 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:337: Test marked todo: unexpected end of line 664 (got 'SUCCESS 666', wanted '@formfeed@SUCCESS 666')
batch.c:348: Test marked todo: unexpected char 0x5e position 5 in line 849 (got 'after^', wanted 'after!')
batch.c:348: Test marked todo: unexpected char 0x20 position 5 in line 1773 (got ' C:\users\eric\AppData\Local\Temp\wct\foobar\baz', wanted ' R@spaces@@drive@@path@foobar\baz@or_broken@@spaces@@drive@@path@foobar\baz@or_broken@ R I@spaces@@drive@@path@foobar\baz')
batch.c:348: Test marked todo: unexpected char 0x6f position 1 in line 1801 (got ''one two three'', wanted '' one two three'@or_broken@Skipped as not enough permissions')
batch.c:348: Test marked todo: unexpected char 0x30 position 0 in line 1830 (got '0', wanted '1')
batch.c:340: Test marked todo: excess characters on line 1853 (got 'cp3 ', wanted 'cp3')
batch.c:340: Test marked todo: excess characters on line 1942 (got 'ErrLev: 0', wanted 'ErrLev:@space@')
batch.c:348: Test marked todo: unexpected char 0x30 position 8 in line 1945 (got 'ErrLev: 0', wanted 'ErrLev:@space@@or_broken@ErrLev: 0')
batch.c:348: Test marked todo: unexpected char 0x35 position 1 in line 2062 (got '25', wanted '21')
batch.c:348: Test marked todo: unexpected char 0x46 position 0 in line 2064 (got 'Failure', wanted 'Success')
batch.c:454: running TEST_CMDLINE.CMD test...
01bc:batch: 2490 tests executed (40 marked as todo, 0 as flaky, 0 failures), 0 skipped.
cmd.exe:batch:01bc done (0) in 37s 5389B
cmd.exe:directory start programs/cmd/tests/directory.c
0754:directory: 24 tests executed (0 marked as todo, 0 as flaky, 0 failures), 0 skipped.
cmd.exe:directory:0754 done (0) in 0s 90B
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7131#note_93561
This is a bit convoluted because of the amount of pieces involved. I'll
try to untangle things a bit.
The container id is meant to be globally unique and stable. We therefore
need a suitable amount of stable entropy that we can feed into a hash
function to get a stable and unique output.
This happens in winebus. The corner stone of hash inputs is the linux
device topology (sysfs path) obtained via udev. Along with all other
possible data we feed this into a hash function to obtain our container
id.
A bunch of extra wine-specific keys needed to be added to carry the
necessary metadata from the driver into the ntoskrnl (where it gets
written to the property registry of the relevant device).
Separate from this we also ingest the linux device topology (sysfs path)
in the winepulse driver.
In mmdevapi we then use winepulse's sysfs path to find the matching
device in the setupapi and query its container id. We now have the same
container id in both the device and the MMDevice, allowing applications
(in particular Games) to find the MMDevice for a given device.
For practical reasons we always resolve the sysfs path to the root
device as early as possible. Container ids are meant to be equal for sub
devices inside a "container" anyway.
--
v2: winebus,mmdevapi: implement audio device container id
https://gitlab.winehq.org/wine/wine/-/merge_requests/7238
This MR enforces alignment of TLS slots as described in PE file.
I'm not 100% happy with the deallocation scheme, as it could be slow.
If someone has a better idea, be welcome!
Didn't open the option to introduce helpers in heap.c (but maybe that's the way to go).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7251
we could perhaps test that the cloning of the handle actually took place
your test just shows that the parsing succeeds but nothing is actually written to 2
something like would do
`dir /Z > foo 2<&1`
`findstr . foo > NUL & if errorlevel 1 (echo not redirected) else echo redirected`
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7252#note_93522