[PATCH] dinput: Don't add 'default value 0' entries to the data transform.
ahiler at codeweavers.com
Fri Jul 23 08:41:16 CDT 2021
On Tue, Jul 20, 2021 at 02:10:50PM +0200, Francois Gouget wrote:
> On Tue, 20 Jul 2021, Arkadiusz Hiler wrote:
> > Yes. I am already looking into this + other flaky dinput tests that fail
> > in a similar way.
> > Turns out that on Windows dinput sometimes just drops key events injected
> > via SendInput() / keybd_event().
> Is it all Windows versions? This one failure seemed to only happen on
> one Windows 8.1 VM (but maybe the others just got lucky so far).
If run in a loop those tests fail (very rarely) for me on Win10 machine,
and I am fairly sure that I've seen failures on Win7 too.
Here's a related failure in a test that emits a lot of events for a
device with a smaller buffer to get DI_BUFFEROVERFLOW:
So some events have been missed.
> > The only reliable solution seems to be checking if the device has
> > received any data via GetDeviceData(), and if we don't see any events
> > there then we can win_skip(). AFAIU it will fail under Wine but just
> > skip on Windows.
> Yes. win_skip() skips on Windows and fails in Wine.
Turns out there are some test that already skip on Windows if injecting
events fails. That's from my Win 10:
device.c:106: Tests skipped: We're not able to inject input into Windows dinput8 with events
> > The tests would still have sporadic skips and I am not sure if this is
> > any better than sporadic failures. Do we track those? This also creates
> > room for breaking tests on Window without noticing...
> We don't really track skips. They are reported on the test result pages
> (they are the blue bars) but are not considered to be an issue as there
> are many legitimate reasons for skipping a test (e.g. if the API is not
> implemented, or if it tests a device which is not present).
Good to know. Thanks!
More information about the wine-devel