1c0abf9e6Sopenharmony_ci// SPDX-License-Identifier: MIT
2c0abf9e6Sopenharmony_ci/*
3c0abf9e6Sopenharmony_ci * Copyright © 2013 Red Hat, Inc.
4c0abf9e6Sopenharmony_ci */
5c0abf9e6Sopenharmony_ci
6c0abf9e6Sopenharmony_ci#include "config.h"
7c0abf9e6Sopenharmony_ci#include "test-common.h"
8c0abf9e6Sopenharmony_ci
9c0abf9e6Sopenharmony_ciSTART_TEST(test_limits)
10c0abf9e6Sopenharmony_ci{
11c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_type_get_name(EV_MAX + 1) == NULL);
12c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX + 1) == NULL);
13c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX + 1) == NULL);
14c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX + 1) == NULL);
15c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX + 1) == NULL);
16c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_SW, SW_MAX + 1) == NULL);
17c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX + 1) == NULL);
18c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX + 1) == NULL);
19c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_REP, REP_MAX + 1) == NULL);
20c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX + 1) == NULL);
21c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_MAX + 1, 0) == NULL);
22c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_MAX + 1) == NULL);
23c0abf9e6Sopenharmony_ci}
24c0abf9e6Sopenharmony_ciEND_TEST
25c0abf9e6Sopenharmony_ci
26c0abf9e6Sopenharmony_ciSTART_TEST(test_type_name)
27c0abf9e6Sopenharmony_ci{
28c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_SYN), "EV_SYN");
29c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_REL), "EV_REL");
30c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_ABS), "EV_ABS");
31c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_MSC), "EV_MSC");
32c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_SW),  "EV_SW");
33c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_LED), "EV_LED");
34c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_SND), "EV_SND");
35c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_REP), "EV_REP");
36c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_FF),  "EV_FF");
37c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_PWR), "EV_PWR");
38c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_FF_STATUS), "EV_FF_STATUS");
39c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_type_get_name(EV_MAX), "EV_MAX");
40c0abf9e6Sopenharmony_ci}
41c0abf9e6Sopenharmony_ciEND_TEST
42c0abf9e6Sopenharmony_ci
43c0abf9e6Sopenharmony_ciSTART_TEST(test_code_abs_name)
44c0abf9e6Sopenharmony_ci{
45c0abf9e6Sopenharmony_ci	/* pick out a few only */
46c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_X), "ABS_X");
47c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_Y), "ABS_Y");
48c0abf9e6Sopenharmony_ci
49c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MT_SLOT), "ABS_MT_SLOT");
50c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MISC), "ABS_MISC");
51c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_ABS, ABS_MAX), "ABS_MAX");
52c0abf9e6Sopenharmony_ci
53c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_ABS, ABS_MAX - 1) == NULL);
54c0abf9e6Sopenharmony_ci
55c0abf9e6Sopenharmony_ci}
56c0abf9e6Sopenharmony_ciEND_TEST
57c0abf9e6Sopenharmony_ci
58c0abf9e6Sopenharmony_ciSTART_TEST(test_code_rel_name)
59c0abf9e6Sopenharmony_ci{
60c0abf9e6Sopenharmony_ci	/* pick out a few only */
61c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_X), "REL_X");
62c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_Y), "REL_Y");
63c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MISC), "REL_MISC");
64c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REL, REL_MAX), "REL_MAX");
65c0abf9e6Sopenharmony_ci
66c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_REL, REL_MAX - 1) == NULL);
67c0abf9e6Sopenharmony_ci
68c0abf9e6Sopenharmony_ci}
69c0abf9e6Sopenharmony_ciEND_TEST
70c0abf9e6Sopenharmony_ci
71c0abf9e6Sopenharmony_ciSTART_TEST(test_code_key_name)
72c0abf9e6Sopenharmony_ci{
73c0abf9e6Sopenharmony_ci	/* pick out a few only */
74c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_RESERVED), "KEY_RESERVED");
75c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_ESC), "KEY_ESC");
76c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_1), "KEY_1");
77c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_2), "KEY_2");
78c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_UNKNOWN), "KEY_UNKNOWN");
79c0abf9e6Sopenharmony_ci
80c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_0), "BTN_0");
81c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_LEFT), "BTN_LEFT");
82c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER), "BTN_TRIGGER");
83c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_A), "BTN_SOUTH");
84c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TOOL_PEN), "BTN_TOOL_PEN");
85c0abf9e6Sopenharmony_ci
86c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_TOUCHPAD_TOGGLE), "KEY_TOUCHPAD_TOGGLE");
87c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
88c0abf9e6Sopenharmony_ci
89c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_MAX), "KEY_MAX");
90c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_KEY, KEY_MAX - 1) == NULL);
91c0abf9e6Sopenharmony_ci
92c0abf9e6Sopenharmony_ci	/* special cases that resolve to something else */
93c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_HANGUEL), "KEY_HANGEUL");
94c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, KEY_SCREENLOCK), "KEY_COFFEE");
95c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MISC), "BTN_0");
96c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_MOUSE), "BTN_LEFT");
97c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_JOYSTICK), "BTN_TRIGGER");
98c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_GAMEPAD), "BTN_SOUTH");
99c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_DIGI), "BTN_TOOL_PEN");
100c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_WHEEL), "BTN_GEAR_DOWN");
101c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_KEY, BTN_TRIGGER_HAPPY), "BTN_TRIGGER_HAPPY1");
102c0abf9e6Sopenharmony_ci
103c0abf9e6Sopenharmony_ci}
104c0abf9e6Sopenharmony_ciEND_TEST
105c0abf9e6Sopenharmony_ci
106c0abf9e6Sopenharmony_ciSTART_TEST(test_code_led_name)
107c0abf9e6Sopenharmony_ci{
108c0abf9e6Sopenharmony_ci	/* pick out a few only */
109c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_NUML), "LED_NUML");
110c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_KANA), "LED_KANA");
111c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_LED, LED_MAX), "LED_MAX");
112c0abf9e6Sopenharmony_ci
113c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_LED, LED_MAX - 1) == NULL);
114c0abf9e6Sopenharmony_ci
115c0abf9e6Sopenharmony_ci}
116c0abf9e6Sopenharmony_ciEND_TEST
117c0abf9e6Sopenharmony_ci
118c0abf9e6Sopenharmony_ciSTART_TEST(test_code_snd_name)
119c0abf9e6Sopenharmony_ci{
120c0abf9e6Sopenharmony_ci	/* pick out a few only */
121c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_CLICK), "SND_CLICK");
122c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_TONE), "SND_TONE");
123c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SND, SND_MAX), "SND_MAX");
124c0abf9e6Sopenharmony_ci
125c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_SND, SND_MAX - 1) == NULL);
126c0abf9e6Sopenharmony_ci
127c0abf9e6Sopenharmony_ci}
128c0abf9e6Sopenharmony_ciEND_TEST
129c0abf9e6Sopenharmony_ci
130c0abf9e6Sopenharmony_ciSTART_TEST(test_code_rep_name)
131c0abf9e6Sopenharmony_ci{
132c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_DELAY), "REP_DELAY");
133c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_PERIOD), "REP_PERIOD");
134c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_MAX), "REP_PERIOD");
135c0abf9e6Sopenharmony_ci
136c0abf9e6Sopenharmony_ci}
137c0abf9e6Sopenharmony_ciEND_TEST
138c0abf9e6Sopenharmony_ci
139c0abf9e6Sopenharmony_ciSTART_TEST(test_code_msc_name)
140c0abf9e6Sopenharmony_ci{
141c0abf9e6Sopenharmony_ci	/* pick out a few only */
142c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_SERIAL), "MSC_SERIAL");
143c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_RAW), "MSC_RAW");
144c0abf9e6Sopenharmony_ci#ifdef MSC_TIMESTAMP
145c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_TIMESTAMP), "MSC_TIMESTAMP");
146c0abf9e6Sopenharmony_ci#endif
147c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_MSC, MSC_MAX), "MSC_MAX");
148c0abf9e6Sopenharmony_ci
149c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_MSC, MSC_MAX - 1) == NULL);
150c0abf9e6Sopenharmony_ci
151c0abf9e6Sopenharmony_ci}
152c0abf9e6Sopenharmony_ciEND_TEST
153c0abf9e6Sopenharmony_ci
154c0abf9e6Sopenharmony_ciSTART_TEST(test_code_sw_name)
155c0abf9e6Sopenharmony_ci{
156c0abf9e6Sopenharmony_ci	/* pick out a few only */
157c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LID), "SW_LID");
158c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_RFKILL_ALL), "SW_RFKILL_ALL");
159c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LINEIN_INSERT), "SW_LINEIN_INSERT");
160c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_PEN_INSERTED), "SW_PEN_INSERTED");
161c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_MAX), "SW_MACHINE_COVER");
162c0abf9e6Sopenharmony_ci}
163c0abf9e6Sopenharmony_ciEND_TEST
164c0abf9e6Sopenharmony_ci
165c0abf9e6Sopenharmony_ciSTART_TEST(test_code_ff_name)
166c0abf9e6Sopenharmony_ci{
167c0abf9e6Sopenharmony_ci	/* pick out a few only */
168c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_STATUS_STOPPED), "FF_STATUS_STOPPED");
169c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_FRICTION), "FF_FRICTION");
170c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_CUSTOM), "FF_CUSTOM");
171c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_FF, FF_MAX), "FF_MAX");
172c0abf9e6Sopenharmony_ci
173c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_code_get_name(EV_FF, FF_MAX - 1) == NULL);
174c0abf9e6Sopenharmony_ci
175c0abf9e6Sopenharmony_ci}
176c0abf9e6Sopenharmony_ciEND_TEST
177c0abf9e6Sopenharmony_ci
178c0abf9e6Sopenharmony_ciSTART_TEST(test_code_syn_name)
179c0abf9e6Sopenharmony_ci{
180c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_REPORT), "SYN_REPORT");
181c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_CONFIG), "SYN_CONFIG");
182c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MT_REPORT), "SYN_MT_REPORT");
183c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_DROPPED), "SYN_DROPPED");
184c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_code_get_name(EV_SYN, SYN_MAX), "SYN_MAX");
185c0abf9e6Sopenharmony_ci}
186c0abf9e6Sopenharmony_ciEND_TEST
187c0abf9e6Sopenharmony_ci
188c0abf9e6Sopenharmony_ciSTART_TEST(test_value_name)
189c0abf9e6Sopenharmony_ci{
190c0abf9e6Sopenharmony_ci	unsigned int type, code;
191c0abf9e6Sopenharmony_ci	int value;
192c0abf9e6Sopenharmony_ci
193c0abf9e6Sopenharmony_ci	for (type = 0; type < EV_MAX; type++) {
194c0abf9e6Sopenharmony_ci		int max = libevdev_event_type_get_max(type);
195c0abf9e6Sopenharmony_ci
196c0abf9e6Sopenharmony_ci		if (max == -1)
197c0abf9e6Sopenharmony_ci			continue;
198c0abf9e6Sopenharmony_ci
199c0abf9e6Sopenharmony_ci		for (code = 0; code < (unsigned int)max; code++) {
200c0abf9e6Sopenharmony_ci			if (type == EV_ABS && code == ABS_MT_TOOL_TYPE)
201c0abf9e6Sopenharmony_ci				continue;
202c0abf9e6Sopenharmony_ci
203c0abf9e6Sopenharmony_ci			for (value = 0; value < 0xff; value++) {
204c0abf9e6Sopenharmony_ci				ck_assert(libevdev_event_value_get_name(type, code, value) == NULL);
205c0abf9e6Sopenharmony_ci			}
206c0abf9e6Sopenharmony_ci		}
207c0abf9e6Sopenharmony_ci	}
208c0abf9e6Sopenharmony_ci
209c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_FINGER), "MT_TOOL_FINGER");
210c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PALM), "MT_TOOL_PALM");
211c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_PEN), "MT_TOOL_PEN");
212c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, MT_TOOL_MAX), "MT_TOOL_MAX");
213c0abf9e6Sopenharmony_ci	ck_assert(libevdev_event_value_get_name(EV_ABS, ABS_MT_TOOL_TYPE, -1) == NULL);
214c0abf9e6Sopenharmony_ci}
215c0abf9e6Sopenharmony_ciEND_TEST
216c0abf9e6Sopenharmony_ci
217c0abf9e6Sopenharmony_ciSTART_TEST(test_prop_name)
218c0abf9e6Sopenharmony_ci{
219c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_POINTER), "INPUT_PROP_POINTER");
220c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_DIRECT), "INPUT_PROP_DIRECT");
221c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_BUTTONPAD), "INPUT_PROP_BUTTONPAD");
222c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_SEMI_MT), "INPUT_PROP_SEMI_MT");
223c0abf9e6Sopenharmony_ci	ck_assert_str_eq(libevdev_property_get_name(INPUT_PROP_MAX), "INPUT_PROP_MAX");
224c0abf9e6Sopenharmony_ci
225c0abf9e6Sopenharmony_ci	ck_assert(libevdev_property_get_name(INPUT_PROP_MAX - 1) == NULL);
226c0abf9e6Sopenharmony_ci	ck_assert(libevdev_property_get_name(INPUT_PROP_MAX + 1) == NULL);
227c0abf9e6Sopenharmony_ci}
228c0abf9e6Sopenharmony_ciEND_TEST
229c0abf9e6Sopenharmony_ci
230c0abf9e6Sopenharmony_ciSTART_TEST(test_event_type_max)
231c0abf9e6Sopenharmony_ci{
232c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_type_get_max(EV_ABS), ABS_MAX);
233c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_type_get_max(EV_REL), REL_MAX);
234c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_type_get_max(EV_KEY), KEY_MAX);
235c0abf9e6Sopenharmony_ci
236c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX - 1), -1);
237c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_type_get_max(EV_MAX + 1), -1);
238c0abf9e6Sopenharmony_ci
239c0abf9e6Sopenharmony_ci}
240c0abf9e6Sopenharmony_ciEND_TEST
241c0abf9e6Sopenharmony_ci
242c0abf9e6Sopenharmony_ciSTART_TEST(test_event_type)
243c0abf9e6Sopenharmony_ci{
244c0abf9e6Sopenharmony_ci	struct input_event ev;
245c0abf9e6Sopenharmony_ci	int i = 0;
246c0abf9e6Sopenharmony_ci
247c0abf9e6Sopenharmony_ci	ev.type = EV_REL;
248c0abf9e6Sopenharmony_ci
249c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_type(&ev, EV_REL), 1);
250c0abf9e6Sopenharmony_ci	for (i = 0; i < EV_CNT; i++) {
251c0abf9e6Sopenharmony_ci		if (i == ev.type)
252c0abf9e6Sopenharmony_ci			continue;
253c0abf9e6Sopenharmony_ci		ck_assert_int_eq(libevdev_event_is_type(&ev, i), 0);
254c0abf9e6Sopenharmony_ci	}
255c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_type(&ev, EV_MAX + 1), 0);
256c0abf9e6Sopenharmony_ci}
257c0abf9e6Sopenharmony_ciEND_TEST
258c0abf9e6Sopenharmony_ci
259c0abf9e6Sopenharmony_ciSTART_TEST(test_event_code)
260c0abf9e6Sopenharmony_ci{
261c0abf9e6Sopenharmony_ci	struct input_event ev;
262c0abf9e6Sopenharmony_ci	int i = 0;
263c0abf9e6Sopenharmony_ci
264c0abf9e6Sopenharmony_ci	ev.type = EV_REL;
265c0abf9e6Sopenharmony_ci	ev.code = REL_Y;
266c0abf9e6Sopenharmony_ci
267c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_Y), 1);
268c0abf9e6Sopenharmony_ci	for (i = 0; i < EV_CNT; i++) {
269c0abf9e6Sopenharmony_ci		int j;
270c0abf9e6Sopenharmony_ci		if (i == ev.type || i == EV_SYN)
271c0abf9e6Sopenharmony_ci			continue;
272c0abf9e6Sopenharmony_ci
273c0abf9e6Sopenharmony_ci		for (j = 0; j < libevdev_event_type_get_max(i); i++) {
274c0abf9e6Sopenharmony_ci			ck_assert_int_eq(libevdev_event_is_code(&ev, i, j), 0);
275c0abf9e6Sopenharmony_ci		}
276c0abf9e6Sopenharmony_ci	}
277c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_code(&ev, EV_MAX + 1, ev.code), 0);
278c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_code(&ev, EV_REL, REL_MAX + 1), 0);
279c0abf9e6Sopenharmony_ci
280c0abf9e6Sopenharmony_ci	ev.type = EV_SYN;
281c0abf9e6Sopenharmony_ci	ev.code = SYN_REPORT;
282c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_REPORT), 1);
283c0abf9e6Sopenharmony_ci	ck_assert_int_eq(libevdev_event_is_code(&ev, EV_SYN, SYN_DROPPED), 0);
284c0abf9e6Sopenharmony_ci}
285c0abf9e6Sopenharmony_ciEND_TEST
286c0abf9e6Sopenharmony_ci
287c0abf9e6Sopenharmony_ciTEST_SUITE(event_name_suite)
288c0abf9e6Sopenharmony_ci{
289c0abf9e6Sopenharmony_ci	Suite *s = suite_create("Event names");
290c0abf9e6Sopenharmony_ci
291c0abf9e6Sopenharmony_ci	add_test(s, test_limits);
292c0abf9e6Sopenharmony_ci	add_test(s, test_event_type_max);
293c0abf9e6Sopenharmony_ci
294c0abf9e6Sopenharmony_ci	add_test(s, test_type_name);
295c0abf9e6Sopenharmony_ci
296c0abf9e6Sopenharmony_ci	add_test(s, test_code_abs_name);
297c0abf9e6Sopenharmony_ci	add_test(s, test_code_rel_name);
298c0abf9e6Sopenharmony_ci	add_test(s, test_code_key_name);
299c0abf9e6Sopenharmony_ci	add_test(s, test_code_led_name);
300c0abf9e6Sopenharmony_ci	add_test(s, test_code_snd_name);
301c0abf9e6Sopenharmony_ci	add_test(s, test_code_rep_name);
302c0abf9e6Sopenharmony_ci	add_test(s, test_code_msc_name);
303c0abf9e6Sopenharmony_ci	add_test(s, test_code_sw_name);
304c0abf9e6Sopenharmony_ci	add_test(s, test_code_ff_name);
305c0abf9e6Sopenharmony_ci	add_test(s, test_code_syn_name);
306c0abf9e6Sopenharmony_ci
307c0abf9e6Sopenharmony_ci	add_test(s, test_value_name);
308c0abf9e6Sopenharmony_ci	add_test(s, test_prop_name);
309c0abf9e6Sopenharmony_ci
310c0abf9e6Sopenharmony_ci	add_test(s, test_event_type);
311c0abf9e6Sopenharmony_ci	add_test(s, test_event_code);
312c0abf9e6Sopenharmony_ci
313c0abf9e6Sopenharmony_ci	return s;
314c0abf9e6Sopenharmony_ci}
315