2 * Copyright © 2013 Red Hat, Inc.
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that copyright
7 * notice and this permission notice appear in supporting documentation, and
8 * that the name of the copyright holders not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission. The copyright holders make no representations
11 * about the suitability of this software for any purpose. It is provided "as
12 * is" without express or implied warranty.
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24 #include "test-common.h"
26 START_TEST(test_limits)
28 ck_assert(libevdev_event_type_get_name(EV_MAX + 1) == NULL);
29 ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX + 1) == NULL);
30 ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX + 1) == NULL);
31 ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX + 1) == NULL);
32 ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX + 1) == NULL);
33 ck_assert(libevdev_event_code_get_name(EV_SW, SW_MAX + 1) == NULL);
34 ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX + 1) == NULL);
35 ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX + 1) == NULL);
36 ck_assert(libevdev_event_code_get_name(EV_REP, REP_MAX + 1) == NULL);
37 ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX + 1) == NULL);
38 ck_assert(libevdev_event_code_get_name(EV_MAX + 1, 0) == NULL);
42 START_TEST(test_type_name)
44 ck_assert_str_eq(libevdev_event_type_get_name(EV_SYN), "EV_SYN");
45 ck_assert_str_eq(libevdev_event_type_get_name(EV_REL), "EV_REL");
46 ck_assert_str_eq(libevdev_event_type_get_name(EV_ABS), "EV_ABS");
47 ck_assert_str_eq(libevdev_event_type_get_name(EV_MSC), "EV_MSC");
48 ck_assert_str_eq(libevdev_event_type_get_name(EV_SW), "EV_SW");
49 ck_assert_str_eq(libevdev_event_type_get_name(EV_LED), "EV_LED");
50 ck_assert_str_eq(libevdev_event_type_get_name(EV_SND), "EV_SND");
51 ck_assert_str_eq(libevdev_event_type_get_name(EV_REP), "EV_REP");
52 ck_assert_str_eq(libevdev_event_type_get_name(EV_FF), "EV_FF");
53 ck_assert_str_eq(libevdev_event_type_get_name(EV_PWR), "EV_PWR");
54 ck_assert_str_eq(libevdev_event_type_get_name(EV_FF_STATUS), "EV_FF_STATUS");
55 ck_assert_str_eq(libevdev_event_type_get_name(EV_MAX), "EV_MAX");
59 START_TEST(test_code_abs_name)
61 /* pick out a few only */
62 ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_X), "ABS_X");
63 ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_Y), "ABS_Y");
65 ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MT_SLOT), "ABS_MT_SLOT");
66 ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MISC), "ABS_MISC");
67 ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MAX), "ABS_MAX");
69 ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX - 1) == NULL);
74 START_TEST(test_code_rel_name)
76 /* pick out a few only */
77 ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_X), "REL_X");
78 ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_Y), "REL_Y");
79 ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MISC), "REL_MISC");
80 ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MAX), "REL_MAX");
82 ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX - 1) == NULL);
87 START_TEST(test_code_key_name)
89 /* pick out a few only */
90 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_RESERVED), "KEY_RESERVED");
91 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_ESC), "KEY_ESC");
92 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_1), "KEY_1");
93 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_2), "KEY_2");
94 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_UNKNOWN), "KEY_UNKNOWN");
96 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_0), "BTN_0");
97 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_LEFT), "BTN_LEFT");
98 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER), "BTN_TRIGGER");
99 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_A), "BTN_SOUTH");
100 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TOOL_PEN), "BTN_TOOL_PEN");
102 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_TOUCHPAD_TOGGLE), "KEY_TOUCHPAD_TOGGLE");
103 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
105 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_MAX), "KEY_MAX");
106 ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX - 1) == NULL);
108 /* special cases that resolve to something else */
109 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_HANGUEL), "KEY_HANGEUL");
110 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_SCREENLOCK), "KEY_COFFEE");
111 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MISC), "BTN_0");
112 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MOUSE), "BTN_LEFT");
113 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_JOYSTICK), "BTN_TRIGGER");
114 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_GAMEPAD), "BTN_SOUTH");
115 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_DIGI), "BTN_TOOL_PEN");
116 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_WHEEL), "BTN_GEAR_DOWN");
117 ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
122 START_TEST(test_code_led_name)
124 /* pick out a few only */
125 ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_NUML), "LED_NUML");
126 ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_KANA), "LED_KANA");
127 ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_MAX), "LED_MAX");
129 ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX - 1) == NULL);
134 START_TEST(test_code_snd_name)
136 /* pick out a few only */
137 ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_CLICK), "SND_CLICK");
138 ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_TONE), "SND_TONE");
139 ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_MAX), "SND_MAX");
141 ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX - 1) == NULL);
146 START_TEST(test_code_msc_name)
148 /* pick out a few only */
149 ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_SERIAL), "MSC_SERIAL");
150 ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_RAW), "MSC_RAW");
152 ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_TIMESTAMP), "MSC_TIMESTAMP");
154 ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_MAX), "MSC_MAX");
156 ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX - 1) == NULL);
161 START_TEST(test_code_sw_name)
163 /* pick out a few only */
164 ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LID), "SW_LID");
165 ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_RFKILL_ALL), "SW_RFKILL_ALL");
166 ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LINEIN_INSERT), "SW_LINEIN_INSERT");
167 ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_MAX), "SW_MAX");
171 START_TEST(test_code_ff_name)
173 /* pick out a few only */
174 ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_STATUS_STOPPED), "FF_STATUS_STOPPED");
175 ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_FRICTION), "FF_FRICTION");
176 ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_CUSTOM), "FF_CUSTOM");
177 ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_MAX), "FF_MAX");
179 ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX - 1) == NULL);
184 START_TEST(test_code_syn_name)
186 ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_REPORT), "SYN_REPORT");
187 ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_CONFIG), "SYN_CONFIG");
188 ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MT_REPORT), "SYN_MT_REPORT");
189 ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_DROPPED), "SYN_DROPPED");
190 ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MAX), "SYN_MAX");
194 START_TEST(test_prop_name)
196 ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_POINTER), "INPUT_PROP_POINTER");
197 ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_DIRECT), "INPUT_PROP_DIRECT");
198 ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_BUTTONPAD), "INPUT_PROP_BUTTONPAD");
199 ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_SEMI_MT), "INPUT_PROP_SEMI_MT");
200 ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_MAX), "INPUT_PROP_MAX");
202 ck_assert(libevdev_property_get_name(INPUT_PROP_MAX - 1) == NULL);
203 ck_assert(libevdev_property_get_name(INPUT_PROP_MAX + 1) == NULL);
207 START_TEST(test_event_type_max)
209 ck_assert_int_eq(libevdev_event_type_get_max(EV_ABS), ABS_MAX);
210 ck_assert_int_eq(libevdev_event_type_get_max(EV_REL), REL_MAX);
211 ck_assert_int_eq(libevdev_event_type_get_max(EV_KEY), KEY_MAX);
213 ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX - 1), -1);
214 ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX + 1), -1);
219 START_TEST(test_event_type)
221 struct input_event ev;
226 ck_assert_int_eq(libevdev_event_is_type(&ev, EV_REL), 1);
227 for (i = 0; i < EV_CNT; i++) {
230 ck_assert_int_eq(libevdev_event_is_type(&ev, i), 0);
232 ck_assert_int_eq(libevdev_event_is_type(&ev, EV_MAX + 1), 0);
236 START_TEST(test_event_code)
238 struct input_event ev;
244 ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_Y), 1);
245 for (i = 0; i < EV_CNT; i++) {
247 if (i == ev.type || i == EV_SYN)
250 for (j = 0; j < libevdev_event_type_get_max(i); i++) {
251 ck_assert_int_eq(libevdev_event_is_code(&ev, i, j), 0);
254 ck_assert_int_eq(libevdev_event_is_code(&ev, EV_MAX + 1, ev.code), 0);
255 ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_MAX + 1), 0);
258 ev.code = SYN_REPORT;
259 ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT), 1);
260 ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_DROPPED), 0);
265 event_name_suite(void)
267 Suite *s = suite_create("Event names");
269 TCase *tc = tcase_create("type limits");
270 tcase_add_test(tc, test_limits);
271 tcase_add_test(tc, test_event_type_max);
272 suite_add_tcase(s, tc);
274 tc = tcase_create("type names");
275 tcase_add_test(tc, test_type_name);
276 suite_add_tcase(s, tc);
278 tc = tcase_create("code names");
279 tcase_add_test(tc, test_code_abs_name);
280 tcase_add_test(tc, test_code_rel_name);
281 tcase_add_test(tc, test_code_key_name);
282 tcase_add_test(tc, test_code_led_name);
283 tcase_add_test(tc, test_code_snd_name);
284 tcase_add_test(tc, test_code_msc_name);
285 tcase_add_test(tc, test_code_sw_name);
286 tcase_add_test(tc, test_code_ff_name);
287 tcase_add_test(tc, test_code_syn_name);
288 suite_add_tcase(s, tc);
290 tc = tcase_create("prop names");
291 tcase_add_test(tc, test_prop_name);
292 suite_add_tcase(s, tc);
294 tc = tcase_create("event values");
295 tcase_add_test(tc, test_event_type);
296 tcase_add_test(tc, test_event_code);
297 suite_add_tcase(s, tc);