summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-10-30 15:36:52 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-11-06 15:37:08 +1000
commit20d48e418166027ce8d2bfc558d6c48129542cb2 (patch)
tree2200d74d5b38523782bd22b6926c37db1541de61 /test
parent1d18a99fe65be76aad8487d6669e71e6a6759bb9 (diff)
downloadlibinput-20d48e418166027ce8d2bfc558d6c48129542cb2.tar.gz
Change sendevents configuration to use bitmasks
In the future, we should allow multiple sendevent modes set simultanously. Change the API to use a bitmask instead of a single return value. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'test')
-rw-r--r--test/device.c40
1 files changed, 38 insertions, 2 deletions
diff --git a/test/device.c b/test/device.c
index 0a53661e..0a60dd90 100644
--- a/test/device.c
+++ b/test/device.c
@@ -42,11 +42,24 @@ START_TEST(device_sendevents_config)
modes = libinput_device_config_send_events_get_modes(device);
ck_assert_int_eq(modes,
- LIBINPUT_CONFIG_SEND_EVENTS_ENABLED|
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED);
}
END_TEST
+START_TEST(device_sendevents_config_invalid)
+{
+ struct litest_device *dev = litest_current_device();
+ struct libinput_device *device;
+ enum libinput_config_status status;
+
+ device = dev->libinput_device;
+
+ status = libinput_device_config_send_events_set_mode(device,
+ LIBINPUT_CONFIG_SEND_EVENTS_DISABLED | (1 << 4));
+ ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_UNSUPPORTED);
+}
+END_TEST
+
START_TEST(device_sendevents_config_touchpad)
{
struct litest_device *dev = litest_current_device();
@@ -57,12 +70,33 @@ START_TEST(device_sendevents_config_touchpad)
modes = libinput_device_config_send_events_get_modes(device);
ck_assert_int_eq(modes,
- LIBINPUT_CONFIG_SEND_EVENTS_ENABLED|
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE|
LIBINPUT_CONFIG_SEND_EVENTS_DISABLED);
}
END_TEST
+START_TEST(device_sendevents_config_touchpad_superset)
+{
+ struct litest_device *dev = litest_current_device();
+ struct libinput_device *device;
+ enum libinput_config_status status;
+ uint32_t modes;
+
+ device = dev->libinput_device;
+
+ modes = LIBINPUT_CONFIG_SEND_EVENTS_DISABLED |
+ LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE;
+
+ status = libinput_device_config_send_events_set_mode(device,
+ modes);
+ ck_assert_int_eq(status, LIBINPUT_CONFIG_STATUS_SUCCESS);
+
+ /* DISABLED supersedes the rest, expect the rest to be dropped */
+ modes = libinput_device_config_send_events_get_mode(device);
+ ck_assert_int_eq(modes, LIBINPUT_CONFIG_SEND_EVENTS_DISABLED);
+}
+END_TEST
+
START_TEST(device_sendevents_config_default)
{
struct litest_device *dev = litest_current_device();
@@ -568,7 +602,9 @@ END_TEST
int main (int argc, char **argv)
{
litest_add("device:sendevents", device_sendevents_config, LITEST_ANY, LITEST_TOUCHPAD);
+ litest_add("device:sendevents", device_sendevents_config_invalid, LITEST_ANY, LITEST_ANY);
litest_add("device:sendevents", device_sendevents_config_touchpad, LITEST_TOUCHPAD, LITEST_ANY);
+ litest_add("device:sendevents", device_sendevents_config_touchpad_superset, LITEST_TOUCHPAD, LITEST_ANY);
litest_add("device:sendevents", device_sendevents_config_default, LITEST_ANY, LITEST_ANY);
litest_add("device:sendevents", device_disable, LITEST_POINTER, LITEST_ANY);
litest_add("device:sendevents", device_disable_touchpad, LITEST_TOUCHPAD, LITEST_ANY);