#define litest_vlog(...) { /* __VA_ARGS__ */ }
#endif
+void
+_litest_checkpoint(const char *func,
+ int line,
+ const char *format,
+ ...)
+{
+ char buf[1024];
+ va_list args;
+
+ va_start(args, format);
+ if (verbose) {
+ vsnprintf(buf, sizeof(buf), format, args);
+ printf(ANSI_BRIGHT_BLUE "%s():%d - " ANSI_BRIGHT_RED "%s" ANSI_NORMAL "\n", func, line, buf); \
+ }
+ va_end(args);
+}
+
static void
litest_backtrace(void)
{
}
void
-litest_assert_empty_queue(struct libinput *li)
+_litest_assert_empty_queue(struct libinput *li,
+ const char *func,
+ int line)
{
bool empty_queue = true;
struct libinput_event *event;
+ _litest_checkpoint(func, line, "asserting empty queue");
+
libinput_dispatch(li);
while ((event = libinput_get_event(li))) {
empty_queue = false;
}
void
-litest_assert_button_event(struct libinput *li, unsigned int button,
- enum libinput_button_state state)
+_litest_assert_button_event(struct libinput *li, unsigned int button,
+ enum libinput_button_state state,
+ const char *func, int line)
{
struct libinput_event *event;
+ _litest_checkpoint(func,
+ line,
+ "asserting button event %s (%d) state %d",
+ libevdev_event_code_get_name(EV_KEY, button),
+ button,
+ state);
+
litest_wait_for_event(li);
event = libinput_get_event(li);
}
void
-litest_assert_gesture_event(struct libinput *li,
- enum libinput_event_type type,
- int nfingers)
+_litest_assert_gesture_event(struct libinput *li,
+ enum libinput_event_type type,
+ int nfingers,
+ const char *func,
+ int line)
{
struct libinput_event *event;
+ _litest_checkpoint(func,
+ line,
+ "asserting gesture event %s %dfg",
+ litest_event_type_str(type),
+ nfingers);
+
litest_wait_for_event(li);
event = libinput_get_event(li);
}
void
-litest_assert_only_typed_events(struct libinput *li,
- enum libinput_event_type type)
+_litest_assert_only_typed_events(struct libinput *li,
+ enum libinput_event_type type,
+ const char *func,
+ int line)
{
struct libinput_event *event;
litest_assert(type != LIBINPUT_EVENT_NONE);
+ _litest_checkpoint(func,
+ line,
+ "asserting only typed events %s",
+ litest_event_type_str(type));
+
libinput_dispatch(li);
event = libinput_get_event(li);
litest_assert_notnull(event);
}; \
static void (name##_setup)(void)
+__attribute__ ((format (printf, 3, 0)))
+void _litest_checkpoint(const char *func,
+ int line,
+ const char *format,
+ ...);
+#define litest_checkpoint(...) \
+ _litest_checkpoint(__func__, __LINE__, __VA_ARGS__)
/**
* litest itself needs the user_data to store some test-suite-specific
litest_assert_event_type(struct libinput_event *event,
enum libinput_event_type want);
+#define litest_assert_empty_queue(li_) \
+ _litest_assert_empty_queue(li_, __func__, __LINE__)
+
void
-litest_assert_empty_queue(struct libinput *li);
+_litest_assert_empty_queue(struct libinput *li,
+ const char *func,
+ int line);
void
litest_assert_touch_sequence(struct libinput *li);
litest_assert_key_event(struct libinput *li, unsigned int key,
enum libinput_key_state state);
+#define litest_assert_button_event(li_, button_, state_) \
+ _litest_assert_button_event(li_, button_, state_, __func__, __LINE__)
+
void
-litest_assert_button_event(struct libinput *li,
- unsigned int button,
- enum libinput_button_state state);
+_litest_assert_button_event(struct libinput *li,
+ unsigned int button,
+ enum libinput_button_state state,
+ const char *func, int line);
void
litest_assert_switch_event(struct libinput *li,
enum libinput_pointer_axis axis,
enum libinput_pointer_axis_source source);
+#define litest_assert_only_typed_events(...) \
+ _litest_assert_only_typed_events(__VA_ARGS__, __func__, __LINE__)
void
-litest_assert_only_typed_events(struct libinput *li,
- enum libinput_event_type type);
+_litest_assert_only_typed_events(struct libinput *li,
+ enum libinput_event_type type,
+ const char *func,
+ int line);
void
litest_assert_only_axis_events(struct libinput *li,
unsigned int key,
enum libinput_key_state state);
+#define litest_assert_gesture_event(...) \
+ _litest_assert_gesture_event(__VA_ARGS__, __func__, __LINE__)
+
void
-litest_assert_gesture_event(struct libinput *li,
- enum libinput_event_type type,
- int nfingers);
+_litest_assert_gesture_event(struct libinput *li,
+ enum libinput_event_type type,
+ int nfingers,
+ const char *func,
+ int line);
struct libevdev_uinput *
litest_create_uinput_device(const char *name,