Still hardcoded for lid switches, but easier to change for other switches now.
Signed-off-by: Peter Hutterer <[email protected]> --- test/test-switch.c | 81 ++++++++++++++++++++---------------------------------- 1 file changed, 30 insertions(+), 51 deletions(-) diff --git a/test/test-switch.c b/test/test-switch.c index eb60bba..b310a0c 100644 --- a/test/test-switch.c +++ b/test/test-switch.c @@ -29,76 +29,65 @@ #include "libinput-util.h" #include "litest.h" -START_TEST(lid_switch_has) +START_TEST(switch_has_lid_switch) { struct litest_device *dev = litest_current_device(); + if (!libevdev_has_event_code(dev->evdev, EV_SW, SW_LID)) + return; + ck_assert_int_eq(libinput_device_switch_has_switch(dev->libinput_device, LIBINPUT_SWITCH_LID), 1); } END_TEST -START_TEST(lid_switch) +START_TEST(switch_toggle) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; struct libinput_event *event; + enum libinput_switch sw = LIBINPUT_SWITCH_LID; litest_drain_events(li); - /* lid closed */ - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_ON); libinput_dispatch(li); event = libinput_get_event(li); - litest_is_switch_event(event, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_is_switch_event(event, sw, LIBINPUT_SWITCH_STATE_ON); libinput_event_destroy(event); - /* lid opened */ - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_OFF); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_OFF); libinput_dispatch(li); event = libinput_get_event(li); - litest_is_switch_event(event, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_OFF); + litest_is_switch_event(event, sw, LIBINPUT_SWITCH_STATE_OFF); libinput_event_destroy(event); litest_assert_empty_queue(li); } END_TEST -START_TEST(lid_switch_double) +START_TEST(switch_toggle_double) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; struct libinput_event *event; + enum libinput_switch sw = LIBINPUT_SWITCH_LID; litest_drain_events(li); - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_ON); libinput_dispatch(li); event = libinput_get_event(li); - litest_is_switch_event(event, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_is_switch_event(event, sw, LIBINPUT_SWITCH_STATE_ON); libinput_event_destroy(event); /* This will be filtered by the kernel, so this test is a bit * useless */ - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_ON); libinput_dispatch(li); litest_assert_empty_queue(li); @@ -122,18 +111,17 @@ lid_switch_is_reliable(struct litest_device *dev) return is_reliable; } -START_TEST(lid_switch_down_on_init) +START_TEST(switch_down_on_init) { struct litest_device *dev = litest_current_device(); struct libinput *li; struct libinput_event *event; + enum libinput_switch sw = LIBINPUT_SWITCH_LID; if (!lid_switch_is_reliable(dev)) return; - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_ON); /* need separate context to test */ li = litest_create_context(); @@ -143,9 +131,7 @@ START_TEST(lid_switch_down_on_init) litest_wait_for_event_of_type(li, LIBINPUT_EVENT_SWITCH_TOGGLE, -1); event = libinput_get_event(li); - litest_is_switch_event(event, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_is_switch_event(event, sw, LIBINPUT_SWITCH_STATE_ON); libinput_event_destroy(event); while ((event = libinput_get_event(li))) { @@ -154,14 +140,10 @@ START_TEST(lid_switch_down_on_init) libinput_event_destroy(event); } - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_OFF); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_OFF); libinput_dispatch(li); event = libinput_get_event(li); - litest_is_switch_event(event, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_OFF); + litest_is_switch_event(event, sw, LIBINPUT_SWITCH_STATE_OFF); libinput_event_destroy(event); litest_assert_empty_queue(li); @@ -170,18 +152,17 @@ START_TEST(lid_switch_down_on_init) } END_TEST -START_TEST(lid_switch_not_down_on_init) +START_TEST(switch_not_down_on_init) { struct litest_device *dev = litest_current_device(); struct libinput *li; struct libinput_event *event; + enum libinput_switch sw = LIBINPUT_SWITCH_LID; if (lid_switch_is_reliable(dev)) return; - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_ON); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_ON); /* need separate context to test */ li = litest_create_context(); @@ -195,9 +176,7 @@ START_TEST(lid_switch_not_down_on_init) libinput_event_destroy(event); } - litest_switch_action(dev, - LIBINPUT_SWITCH_LID, - LIBINPUT_SWITCH_STATE_OFF); + litest_switch_action(dev, sw, LIBINPUT_SWITCH_STATE_OFF); litest_assert_empty_queue(li); libinput_unref(li); } @@ -502,11 +481,11 @@ END_TEST void litest_setup_tests_lid(void) { - litest_add("lid:switch", lid_switch_has, LITEST_SWITCH, LITEST_ANY); - litest_add("lid:switch", lid_switch, LITEST_SWITCH, LITEST_ANY); - litest_add("lid:switch", lid_switch_double, LITEST_SWITCH, LITEST_ANY); - litest_add("lid:switch", lid_switch_down_on_init, LITEST_SWITCH, LITEST_ANY); - litest_add("lid:switch", lid_switch_not_down_on_init, LITEST_SWITCH, LITEST_ANY); + litest_add("switch:has", switch_has_lid_switch, LITEST_SWITCH, LITEST_ANY); + litest_add("switch:toggle", switch_toggle, LITEST_SWITCH, LITEST_ANY); + litest_add("switch:toggle", switch_toggle_double, LITEST_SWITCH, LITEST_ANY); + litest_add("switch:toggle", switch_down_on_init, LITEST_SWITCH, LITEST_ANY); + litest_add("switch:toggle", switch_not_down_on_init, LITEST_SWITCH, LITEST_ANY); litest_add("lid:disable_touchpad", lid_disable_touchpad, LITEST_SWITCH, LITEST_ANY); litest_add("lid:disable_touchpad", lid_disable_touchpad_during_touch, LITEST_SWITCH, LITEST_ANY); litest_add("lid:disable_touchpad", lid_disable_touchpad_edge_scroll, LITEST_SWITCH, LITEST_ANY); -- 2.9.3 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
