From a5ea7a6dd032dc53eb8da6d26b089235e7ac8707 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 18 Aug 2020 14:06:36 +1000 Subject: [PATCH] test: better event type logging Signed-off-by: Peter Hutterer --- test/eierpecken.c | 74 ++++++++++++++++++++++++++++++++++++++++++----- test/eierpecken.h | 12 ++++++++ 2 files changed, 79 insertions(+), 7 deletions(-) diff --git a/test/eierpecken.c b/test/eierpecken.c index c6c9c20..1e9a017 100644 --- a/test/eierpecken.c +++ b/test/eierpecken.c @@ -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 +} diff --git a/test/eierpecken.h b/test/eierpecken.h index 93ac1f7..9c48450 100644 --- a/test/eierpecken.h +++ b/test/eierpecken.h @@ -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)