https://bugs.winehq.org/show_bug.cgi?id=54871
Bug ID: 54871 Summary: kernel32:console - testScroll() fails on Windows 10 1909 Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
kernel32:console - testScroll() fails on Windows 10 1909:
console.c:704: Test failed: ScrollConsoleScreenBufferA failed: 87
See https://test.winehq.org/data/patterns.html#kernel32:console
Where 87 == ERROR_INVALID_PARAMETER
The failing call is:
/* clipping, src & dst rect do overlap */ ... ret = ScrollConsoleScreenBufferA(hCon, &scroll, &clip, dst, &ci);
The parameters are scroll: 0x0-10x6 dst 2x0 clip 5x3-16x10 [1]
Some debugging shows that: * The test is not skipped and succeeds in all other Windows 10 versions, including Windows 10 1809 and 2009. * Despite returning an error ScrollConsoleScreenBufferA() does what it was asked, even on Windows 10 1909! This is why the loop that checks the content of the screen does not report a ton of failures. * ScrollConsoleScreenBufferA() stops returning an error when the destination coordinates are within the clip rectangle.
[1] I'm not sure the 0 Y shift was intentional. It's the result of integer rounding in 7/2-3 = 0.5 -> 0. So this is really only testing an horizontal shift.