[PATCH xorg-gtest 0/5] Build system improvements and uTouch-Evemu support

Chase Douglas chase.douglas at canonical.com
Mon Mar 5 11:47:37 PST 2012

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.

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.

-- Chase

More information about the xorg-devel mailing list