summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/litest.c13
-rw-r--r--test/log.c86
2 files changed, 31 insertions, 68 deletions
diff --git a/test/litest.c b/test/litest.c
index d3f8f0dd..793d72f7 100644
--- a/test/litest.c
+++ b/test/litest.c
@@ -44,6 +44,7 @@
#include "libinput-util.h"
static int in_debugger = -1;
+static int verbose = 0;
struct test {
struct list node;
@@ -250,8 +251,8 @@ litest_list_tests(struct list *tests)
}
static void
-litest_log_handler(enum libinput_log_priority pri,
- void *user_data,
+litest_log_handler(struct libinput *libinput,
+ enum libinput_log_priority pri,
const char *format,
va_list args)
{
@@ -321,8 +322,7 @@ litest_run(int argc, char **argv) {
litest_list_tests(&all_tests);
return 0;
case 'v':
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
- libinput_log_set_handler(litest_log_handler, NULL);
+ verbose = 1;
break;
default:
fprintf(stderr, "usage: %s [--list]\n", argv[0]);
@@ -482,6 +482,11 @@ litest_create_context(void)
struct libinput *libinput =
libinput_path_create_context(&interface, NULL);
ck_assert_notnull(libinput);
+
+ libinput_log_set_handler(libinput, litest_log_handler);
+ if (verbose)
+ libinput_log_set_priority(libinput, LIBINPUT_LOG_PRIORITY_DEBUG);
+
return libinput;
}
diff --git a/test/log.c b/test/log.c
index a2818207..02ed4f08 100644
--- a/test/log.c
+++ b/test/log.c
@@ -32,7 +32,7 @@
#include "litest.h"
static int log_handler_called;
-static void *log_handler_userdata;
+static struct libinput *log_handler_context;
static int open_restricted(const char *path, int flags, void *data)
{
@@ -51,130 +51,90 @@ const struct libinput_interface simple_interface = {
};
static void
-simple_log_handler(enum libinput_log_priority priority,
- void *userdata,
+simple_log_handler(struct libinput *libinput,
+ enum libinput_log_priority priority,
const char *format,
va_list args)
{
log_handler_called++;
- ck_assert(userdata == log_handler_userdata);
+ if (log_handler_context)
+ ck_assert(libinput == log_handler_context);
ck_assert(format != NULL);
}
START_TEST(log_default_priority)
{
enum libinput_log_priority pri;
-
- pri = libinput_log_get_priority();
-
- ck_assert_int_eq(pri, LIBINPUT_LOG_PRIORITY_ERROR);
-}
-END_TEST
-
-START_TEST(log_handler_invoked)
-{
struct libinput *li;
- enum libinput_log_priority pri = libinput_log_get_priority();
-
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
- libinput_log_set_handler(simple_log_handler, NULL);
- log_handler_userdata = NULL;
li = libinput_path_create_context(&simple_interface, NULL);
- libinput_path_add_device(li, "/tmp");
+ pri = libinput_log_get_priority(li);
- ck_assert_int_gt(log_handler_called, 0);
- log_handler_called = 0;
+ ck_assert_int_eq(pri, LIBINPUT_LOG_PRIORITY_ERROR);
libinput_destroy(li);
- libinput_log_set_priority(pri);
}
END_TEST
-START_TEST(log_userdata_NULL)
+START_TEST(log_handler_invoked)
{
struct libinput *li;
- enum libinput_log_priority pri = libinput_log_get_priority();
-
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
- libinput_log_set_handler(simple_log_handler, NULL);
- log_handler_userdata = NULL;
li = libinput_path_create_context(&simple_interface, NULL);
- libinput_path_add_device(li, "/tmp");
- ck_assert_int_gt(log_handler_called, 0);
- log_handler_called = 0;
-
- libinput_destroy(li);
-
- libinput_log_set_priority(pri);
-}
-END_TEST
-
-START_TEST(log_userdata)
-{
- struct libinput *li;
- enum libinput_log_priority pri = libinput_log_get_priority();
-
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
- libinput_log_set_handler(simple_log_handler, &li);
- log_handler_userdata = &li;
+ libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_DEBUG);
+ libinput_log_set_handler(li, simple_log_handler);
+ log_handler_context = li;
- li = libinput_path_create_context(&simple_interface, NULL);
libinput_path_add_device(li, "/tmp");
ck_assert_int_gt(log_handler_called, 0);
log_handler_called = 0;
libinput_destroy(li);
- libinput_log_set_priority(pri);
+
+ log_handler_context = NULL;
}
END_TEST
START_TEST(log_handler_NULL)
{
struct libinput *li;
- enum libinput_log_priority pri = libinput_log_get_priority();
-
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_DEBUG);
- libinput_log_set_handler(NULL, NULL);
- log_handler_userdata = NULL;
li = libinput_path_create_context(&simple_interface, NULL);
+ libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_DEBUG);
+ libinput_log_set_handler(li, NULL);
+
libinput_path_add_device(li, "/tmp");
ck_assert_int_eq(log_handler_called, 0);
log_handler_called = 0;
- libinput_log_set_handler(simple_log_handler, NULL);
libinput_destroy(li);
- libinput_log_set_priority(pri);
}
END_TEST
START_TEST(log_priority)
{
struct libinput *li;
- enum libinput_log_priority pri = libinput_log_get_priority();
-
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_ERROR);
- libinput_log_set_handler(simple_log_handler, NULL);
- log_handler_userdata = NULL;
li = libinput_path_create_context(&simple_interface, NULL);
+ libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_ERROR);
+ libinput_log_set_handler(li, simple_log_handler);
+ log_handler_context = li;
+
libinput_path_add_device(li, "/tmp");
ck_assert_int_eq(log_handler_called, 0);
- libinput_log_set_priority(LIBINPUT_LOG_PRIORITY_INFO);
+ libinput_log_set_priority(li, LIBINPUT_LOG_PRIORITY_INFO);
libinput_path_add_device(li, "/tmp");
ck_assert_int_gt(log_handler_called, 0);
log_handler_called = 0;
libinput_destroy(li);
- libinput_log_set_priority(pri);
+ log_handler_context = NULL;
}
END_TEST
@@ -182,8 +142,6 @@ int main (int argc, char **argv) {
litest_add_no_device("log:defaults", log_default_priority);
litest_add_no_device("log:logging", log_handler_invoked);
litest_add_no_device("log:logging", log_handler_NULL);
- litest_add_no_device("log:logging", log_userdata);
- litest_add_no_device("log:logging", log_userdata_NULL);
litest_add_no_device("log:logging", log_priority);
return litest_run(argc, argv);