[PATCH xorg-gtest 0/5] Build system improvements and uTouch-Evemu support
peter.hutterer at who-t.net
Mon Mar 5 18:09:50 PST 2012
On Mon, Mar 05, 2012 at 11:47:37AM -0800, Chase Douglas wrote:
> The first three changes are improvements to the build system. The fourth is a
> simple .gitignore update. The fifth is the addition of uTouch-Evemu device
> recording playback support.
> Unfortunately, the X.org server does not have a suitable mechanism for
> generating test input events for all events. The XTest extension relies on a
> static pointer and keyboard combination, does not propagate events through the
> normal event path in the server, and only supports X core and XInput 1.x events.
> I wanted to create a new input module that would instantiate new devices on
> demand and send events using the xf86XInput API, but the input device
> architecture of the server makes this impossible without a new input module API.
Not quite sure what part is impossible here, can you expand? We do something
like this in the wacom driver, NewInputDeviceRequest is exposed to the
This is just out of interest, I do think that uinput is the best solution
> However, we can get around all this on Linux by using the uinput evdev
> subsystem. Any physical device can be recorded and played back as a virtual
> device using uinput. uTouch-Evemu is a thin wrapper around uinput that handles
> recording to and playing back from files. We use this for utouch-frame,
> utouch-grail, and utouch-geis for integration testing. Currently, each has its
> own Evemu testing wrapper, but this will help simplify things.
> You can find more information on evemu here:
> Note that uTouch-Evemu is GPLv3 and cannot be relicensed. Support is being added
> optionally, and if you don't specify --with-evemu or --without-evemu it should
> automatically pick it up if it's already installed. Until we have better X.org
> input test frameworks, I believe this is a reasonable first step for testing.
I'm going to claim that given that uinput only exists on Linux, the GPLv3
dependency shouldn't affect us badly (those that can't use GPLv3 don't run
More information about the xorg-devel