diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2016-05-10 12:22:40 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2016-05-17 07:58:15 +1000 |
commit | fb5a97211b31853f9f680c70ba876edb1275ff5b (patch) | |
tree | e289433463c11e8fa8e6b7cae3dee6ee641335ce | |
parent | 50a86cceb44c626ff137fbc1826e49b9e5cdd047 (diff) |
test: add a keyboard test device with all codes enabled
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | test/Makefile.am | 1 | ||||
-rw-r--r-- | test/litest-device-keyboard-all-codes.c | 76 | ||||
-rw-r--r-- | test/litest.c | 2 | ||||
-rw-r--r-- | test/litest.h | 1 |
4 files changed, 80 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index f0ac855..3b455eb 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -25,6 +25,7 @@ liblitest_la_SOURCES = \ litest-device-generic-singletouch.c \ litest-device-huion-pentablet.c \ litest-device-keyboard.c \ + litest-device-keyboard-all-codes.c \ litest-device-keyboard-razer-blackwidow.c \ litest-device-logitech-trackball.c \ litest-device-nexus4-touch-screen.c \ diff --git a/test/litest-device-keyboard-all-codes.c b/test/litest-device-keyboard-all-codes.c new file mode 100644 index 0000000..fffd0a6 --- /dev/null +++ b/test/litest-device-keyboard-all-codes.c @@ -0,0 +1,76 @@ +/* + * Copyright © 2013 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include "litest.h" +#include "litest-int.h" + +static void all_codes_create(struct litest_device *d); + +static void litest_keyboard_all_codes_setup(void) +{ + struct litest_device *d = litest_create_device(LITEST_KEYBOARD); + litest_set_current_device(d); +} + +static struct input_id input_id = { + .bustype = 0x11, + .vendor = 0x1, + .product = 0x1, +}; + +struct litest_test_device litest_keyboard_all_codes_device = { + .type = LITEST_KEYBOARD_ALL_CODES, + .features = LITEST_KEYS, + .shortname = "keyboard all event codes", + .setup = litest_keyboard_all_codes_setup, + .interface = NULL, + .create = all_codes_create, + + .name = "All event codes keyboard", + .id = &input_id, + .events = NULL, + .absinfo = NULL, +}; + +static void +all_codes_create(struct litest_device *d) +{ + int events[KEY_MAX * 2 + 2]; + int code, idx; + + for (idx = 0, code = 0; code < KEY_MAX; code++) { + events[idx++] = EV_KEY; + events[idx++] = code; + } + events[idx++] = -1; + events[idx++] = -1; + + d->uinput = litest_create_uinput_device_from_description(litest_keyboard_all_codes_device.name, + litest_keyboard_all_codes_device.id, + NULL, + events); +} diff --git a/test/litest.c b/test/litest.c index 48569d6..7f5a4d7 100644 --- a/test/litest.c +++ b/test/litest.c @@ -382,6 +382,7 @@ extern struct litest_test_device litest_wacom_cintiq_24hd_device; extern struct litest_test_device litest_multitouch_fuzz_screen_device; extern struct litest_test_device litest_wacom_intuos3_pad_device; extern struct litest_test_device litest_wacom_intuos5_pad_device; +extern struct litest_test_device litest_keyboard_all_codes_device; struct litest_test_device* devices[] = { &litest_synaptics_clickpad_device, @@ -430,6 +431,7 @@ struct litest_test_device* devices[] = { &litest_multitouch_fuzz_screen_device, &litest_wacom_intuos3_pad_device, &litest_wacom_intuos5_pad_device, + &litest_keyboard_all_codes_device, NULL, }; diff --git a/test/litest.h b/test/litest.h index 211b176..a7e8607 100644 --- a/test/litest.h +++ b/test/litest.h @@ -199,6 +199,7 @@ enum litest_device_type { LITEST_MULTITOUCH_FUZZ_SCREEN, LITEST_WACOM_INTUOS3_PAD, LITEST_WACOM_INTUOS5_PAD, + LITEST_KEYBOARD_ALL_CODES, }; enum litest_device_feature { |