test: better event type logging

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-08-18 14:06:36 +10:00
parent c39dc360d4
commit a5ea7a6dd0
2 changed files with 79 additions and 7 deletions

View file

@ -229,8 +229,6 @@ peck_dispatch_eis(struct peck *peck)
if (!e)
break;
log_debug(peck, "EIS event %d\n", eis_event_get_type(e));
switch (eis_event_get_type(e)) {
case EIS_EVENT_CLIENT_CONNECT:
case EIS_EVENT_CLIENT_DISCONNECT:
@ -249,12 +247,14 @@ peck_dispatch_eis(struct peck *peck)
break;
}
if (!tristate_is_yes(process_event)) {
log_debug(peck, "... punting to caller\n");
break;
}
log_debug(peck, "EIS received %s.... %s\n",
peck_eis_event_name(e),
tristate_is_yes(process_event) ?
"handling ourselves" : "punting to caller");
if (!tristate_is_yes(process_event))
break;
log_debug(peck, "... processing\n");
/* manual unref, _cleanup_ will take care of the real event */
eis_event_unref(e);
e = eis_get_event(eis);
@ -328,6 +328,11 @@ peck_dispatch_ei(struct peck *peck)
break;
}
log_debug(peck, "ei event %s.... %s\n",
peck_ei_event_name(e),
tristate_is_yes(process_event) ?
"handling ourselves" : "punting to caller");
if (!tristate_is_yes(process_event))
break;
@ -371,3 +376,58 @@ peck_drain_ei(struct ei *ei)
break;
}
}
const char *
peck_ei_event_name(struct ei_event *e)
{
return peck_ei_event_type_name(ei_event_get_type(e));
}
const char *
peck_ei_event_type_name(enum ei_event_type type)
{
#define CASE_STRING(_name) \
case EI_EVENT_##_name: return #_name
switch (type) {
CASE_STRING(CONNECT);
CASE_STRING(DISCONNECT);
CASE_STRING(DEVICE_ADDED);
CASE_STRING(DEVICE_REMOVED);
CASE_STRING(DEVICE_SUSPENDED);
CASE_STRING(DEVICE_RESUMED);
default:
abort();
}
#undef CASE_STRING
}
const char *
peck_eis_event_name(struct eis_event *e)
{
return peck_eis_event_type_name(eis_event_get_type(e));
}
const char *
peck_eis_event_type_name(enum eis_event_type type)
{
#define CASE_STRING(_name) \
case EIS_EVENT_##_name: return #_name
switch (type) {
CASE_STRING(CLIENT_CONNECT);
CASE_STRING(CLIENT_DISCONNECT);
CASE_STRING(DEVICE_ADDED);
CASE_STRING(DEVICE_REMOVED);
CASE_STRING(POINTER_MOTION);
CASE_STRING(POINTER_MOTION_ABSOLUTE);
CASE_STRING(POINTER_BUTTON);
CASE_STRING(KEYBOARD_KEY);
CASE_STRING(TOUCH_DOWN);
CASE_STRING(TOUCH_UP);
CASE_STRING(TOUCH_MOTION);
default:
abort();
}
#undef CASE_STRING
}

View file

@ -120,6 +120,18 @@ peck_drain_eis(struct eis *eis);
void
peck_drain_ei(struct ei *ei);
const char *
peck_ei_event_name(struct ei_event *e);
const char *
peck_eis_event_name(struct eis_event *e);
const char *
peck_ei_event_type_name(enum ei_event_type type);
const char *
peck_eis_event_type_name(enum eis_event_type type);
/* Define a bunch of _cleanup_foo_ macros for a struct foo */
DEFINE_TRIVIAL_CLEANUP_FUNC(struct ei *, ei_unref);
#define _cleanup_ei_ _cleanup_(ei_unrefp)