diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-10-30 15:36:52 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-11-06 15:37:08 +1000 |
commit | 20d48e418166027ce8d2bfc558d6c48129542cb2 (patch) | |
tree | 2200d74d5b38523782bd22b6926c37db1541de61 /test | |
parent | 1d18a99fe65be76aad8487d6669e71e6a6759bb9 (diff) | |
download | libinput-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.c | 40 |
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); |