libinput/test
Peter Hutterer 89ac7fd24b test: make sure we search for event node, not the parent input device
This explains the heisenbugs when running the test suite. libevdev gives us
the syspath to the /sys/.../input123 node, not the one for the event node.
The device node path is created based on the sysfs tree, so there's a
window where the device node may not exist yet but we already returned the
device node path.

In litest, we're using a udev monitor to wait until the device is ready for
us, but the path interface only takes a device node path. So what happens is:
* libevdev gives us a syspath for the input node and a device path
* the monitor receives the input node udev device and matches the syspath
* we pass that up to the caller litest_add_device_with_overrides()
  which opens the device node and adds it to libinput
* the path interface creates a udev device from the device node, which still
  points to the old device node. Things fail because we don't have the device
  we expect or it doesn't send events and eventually times out [1].

The errors triggered by this are either odd udev property mismatches or
timeouts because events are never processed.

This race is fixed by simply constructing the actual device node path we
expect from the udev device and waiting for the right device.

[1] We rely on the caller to notify us when to remove the device and thus
silently ignore ENODEV.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-06-01 09:34:33 +10:00
..
50-litest.conf test: Prefix litest created device names with litest 2014-06-25 11:11:45 +10:00
build-cxx.cc test: Add include from C++ build test 2014-03-29 00:51:44 +01:00
build-pedantic.c Fix a couple of coding style issues 2015-05-01 12:09:57 +10:00
generate-gcov-report.sh Hook up gcov for coverage reports 2017-01-20 10:35:37 +10:00
litest-device-acer-hawaii-keyboard.c touchpad: if an external touchpad and keyboard share a VID/PID assume dwt 2016-12-20 10:21:43 +10:00
litest-device-acer-hawaii-touchpad.c touchpad: if an external touchpad and keyboard share a VID/PID assume dwt 2016-12-20 10:21:43 +10:00
litest-device-alps-dualpoint.c touchpad: use pressure values for touch is-down decision 2017-01-30 10:50:28 +10:00
litest-device-alps-semi-mt.c touchpad: use pressure values for touch is-down decision 2017-01-30 10:50:28 +10:00
litest-device-anker-mouse-kbd.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-apple-appletouch.c touchpad: mark the Apple onebutton touchpad as clickfinger-default 2017-02-09 09:26:07 +10:00
litest-device-apple-internal-keyboard.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-apple-magicmouse.c test: unset MOUSE_DPI for the apple magic mouse 2017-03-30 12:56:49 +10:00
litest-device-asus-rog-gladius.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-atmel-hover.c touchpad: use pressure values for touch is-down decision 2017-01-30 10:50:28 +10:00
litest-device-bcm5974.c test: drop ABS_MT_PRESSURE from the bcm5974 2017-03-08 14:44:26 +10:00
litest-device-calibrated-touchscreen.c path: parse the WL_OUTPUT property for patch devices too 2017-02-09 11:54:03 +10:00
litest-device-cyborg-rat-5.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-elantech-touchpad.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-generic-singletouch.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-huion-pentablet.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-keyboard-all-codes.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-keyboard-razer-blackwidow.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-keyboard.c test: add a test for keyboard LED updates 2017-01-20 10:35:43 +10:00
litest-device-lid-switch-surface3.c switch: for surface 3 tablets, write the lid open to the device 2017-01-30 15:26:45 +10:00
litest-device-lid-switch.c switch: only sync the initial state if we know the state is reliable 2017-01-26 14:44:04 +10:00
litest-device-logitech-trackball.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-magic-trackpad.c test: mark the magic trackpad as external in udev 2016-12-20 08:53:35 +10:00
litest-device-mouse-low-dpi.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-mouse-roccat.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-mouse-wheel-click-angle.c test: fix two test udev rules 2017-01-30 15:26:44 +10:00
litest-device-mouse-wheel-click-count.c test: fix udev rule for click count device 2017-03-30 12:09:06 +10:00
litest-device-mouse-wheel-tilt.c test: add wheel tilt tests 2017-01-20 11:45:29 +10:00
litest-device-mouse.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-ms-surface-cover.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-nexus4-touch-screen.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-protocol-a-touch-screen.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-qemu-usb-tablet.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-synaptics-hover.c touchpad: use pressure values for touch is-down decision 2017-01-30 10:50:28 +10:00
litest-device-synaptics-i2c.c touchpad: add a model tag to mark touchpads with visible marker 2017-01-11 10:39:05 +10:00
litest-device-synaptics-rmi4.c test: add a synaptics RMI4 test device 2017-01-12 14:45:50 +10:00
litest-device-synaptics-st.c touchpad: use pressure values for touch is-down decision 2017-01-30 10:50:28 +10:00
litest-device-synaptics-t440.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-synaptics-x1-carbon-3rd.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-synaptics.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-touch-screen.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-touchscreen-fuzz.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-trackpoint.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-vmware-virtual-usb-mouse.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-wacom-bamboo-16fg-pen.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-cintiq-12wx-pen.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-cintiq-13hdt-finger.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-cintiq-13hdt-pad.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-cintiq-13hdt-pen.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-cintiq-24hd-pen.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-cintiq-24hdt-pad.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-ekr.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-hid4800-pen.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-intuos3-pad.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-intuos5-finger.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-intuos5-pad.c Fix the license for a bunch of tablet test devices 2016-12-01 11:12:09 +10:00
litest-device-wacom-intuos5-pen.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-isdv4-e6-finger.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-wacom-isdv4-e6-pen.c test: rename wacom test devices to a consistent naming scheme 2017-01-16 12:11:19 +10:00
litest-device-waltop-tablet.c test: fix udev rule for waltop tablet test device 2017-02-17 15:39:31 +10:00
litest-device-wheel-only.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-xen-virtual-pointer.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-device-yubikey.c Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-int.h Drop HAVE_CONFIG_H ifdef 2016-12-01 11:06:54 +10:00
litest-selftest.c test: fix compiler warning 2016-01-20 12:56:35 +10:00
litest.c test: make sure we search for event node, not the parent input device 2017-06-01 09:34:33 +10:00
litest.h test: undef ck_assert_double before redefining it 2017-05-04 12:43:38 +10:00
Makefile.am test: install the litest device groups file 2017-05-11 11:48:39 +10:00
symbols-leak-test.in test: allow running the symbols-leak-test.in script directly 2017-05-04 13:49:37 +10:00
test-device.c evdev: add quirk for Logitech Marble Mouse 2017-02-20 12:25:05 +10:00
test-gestures.c test: prefix all test source files with "test-" 2017-01-16 08:59:00 +10:00
test-keyboard.c test: test absence of scroll events on keyboards 2017-01-20 10:35:45 +10:00
test-lid.c Revert "lid: force the lid to open when the keyboard device is removed" 2017-05-23 15:10:10 +10:00
test-log.c test: prefix all test source files with "test-" 2017-01-16 08:59:00 +10:00
test-misc.c touchpad: move the pressure range to a hwdb entry 2017-04-26 12:38:15 +10:00
test-pad.c test: add test for pad event mode groups 2017-02-06 11:00:43 +10:00
test-path.c test: add a test to force a destroy for the path backend 2017-01-20 10:35:44 +10:00
test-pointer.c evdev: improve default scroll button detection 2017-04-24 10:27:32 +10:00
test-tablet.c test: fix compiler warning 2017-05-04 12:45:23 +10:00
test-touch.c test: add test for touch seat slots 2017-02-06 11:47:56 +10:00
test-touchpad-buttons.c touchpad: ignore hovering touches for the software button state 2017-03-02 08:34:17 +10:00
test-touchpad-tap.c touchpad: for 2/3-finger tap, use the last finger down as press time 2017-04-28 15:37:00 +10:00
test-touchpad.c touchpad: pull the tap exclusion zone down to the full edge zone 2017-05-11 10:30:04 +10:00
test-trackball.c test: prefix all test source files with "test-" 2017-01-16 08:59:00 +10:00
test-trackpoint.c evdev: add "READY" state to button scrolling 2017-02-20 21:16:34 +10:00
test-udev.c test: add test for invalid path operations on udev backends 2017-01-20 10:35:43 +10:00
valgrind.suppressions test: suppress Python3 valgrind errors 2017-05-08 20:51:15 +10:00