On 12-11-2020 10:38, Huw Davies wrote:
On Mon, Nov 09, 2020 at 03:07:17PM +0100, Sven Baars wrote:
{
todo_wine { ok(len > 0, "Test %d: got %d.\n", i, len); ok(abc.abcA + abc.abcB + abc.abcC <= len && abc.abcA + abc.abcB + abc.abcC > 0, "Test %d: expected %d >= %d > 0.\n", i, len, abc.abcA + abc.abcB + abc.abcC); ok(abc.abcB > 0, "Test %d: got %d.\n", i, abc.abcB);
} }
I haven't looked at this in any detail, but if your changes require adding todo_wine blocks that's going to require a lot of justification.
Huw.
Hi Huw,
Right, I added these tests to cover everything that is affected by changes to get_glyph_outline(). The change in this patch fixes the behavior of GetCharacterPlacementW() in 15/17 cases, GetTextExtentExPointW() in 17/17 cases and GetCharWidth32W() and GetCharABCWidthsW() in 10/17 cases. In wine they all depend on the same function (get_glyph_outline()), on Windows they clearly do not. I'm not sure if it's worth it to change these functions to not all use get_glyph_outline() so we can attempt to make then behave correctly in all cases. Especially since it's so inconsistent between these functions, and apparently also across different Windows version. Note that this may be easier now after the recent restructuring of gdi32 than it was at the time when I wrote these patches.
Some of these issues can also be attributed to the different implementation of Tahoma that we have in wine, making testing this more difficult. If I use the windows one I get quite some "Test succeeded inside todo block" failures.
Cheers, Sven