summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-09-03 16:54:44 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-09-10 09:54:29 +1000
commit112ac0351fa268522f836a28da6786c55e746ef7 (patch)
tree5dc19febc10dd0912de01b313c2bf9d6719bb4fe
parentad709cf95377d1f95b1db4aa2b7fec11382d44dc (diff)
downloadlibevdev-112ac0351fa268522f836a28da6786c55e746ef7.tar.gz
test: test for logging function
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--test/test-libevdev-init.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/test/test-libevdev-init.c b/test/test-libevdev-init.c
index 8f1d0d1..02dfa8b 100644
--- a/test/test-libevdev-init.c
+++ b/test/test-libevdev-init.c
@@ -93,10 +93,16 @@ START_TEST(test_init_and_change_fd)
}
END_TEST
+
+static int log_fn_called = 0;
+static char *logdata = "test";
static void logfunc(enum libevdev_log_priority priority,
void *data,
const char *file, int line, const char *func,
- const char *f, va_list args) {}
+ const char *f, va_list args) {
+ ck_assert_int_eq(strcmp(logdata, data), 0);
+ log_fn_called++;
+}
START_TEST(test_log_init)
{
@@ -107,16 +113,23 @@ START_TEST(test_log_init)
dev = libevdev_new();
ck_assert(dev != NULL);
- libevdev_set_log_function(logfunc, NULL);
- libevdev_free(dev);
- dev = libevdev_new();
- ck_assert(dev != NULL);
+ libevdev_set_log_function(logfunc, logdata);
+ libevdev_next_event(dev, LIBEVDEV_READ_NORMAL, NULL);
+
libevdev_set_log_function(NULL, NULL);
- libevdev_set_log_function(logfunc, NULL);
- libevdev_free(dev);
- /* well, we didn't crash. can't test this otherwise */
+ libevdev_next_event(dev, LIBEVDEV_READ_NORMAL, NULL);
+ libevdev_set_log_function(logfunc, logdata);
+ libevdev_next_event(dev, LIBEVDEV_READ_NORMAL, NULL);
+
+ /* libevdev_next_event(dev, LIBEVDEV_READ_NORMAL, NULL) should
+ trigger a log message. We called it three times, but only twice
+ with the logfunc set, thus, ensure we only called the logfunc
+ twice */
+ ck_assert_int_eq(log_fn_called, 2);
+
+ libevdev_free(dev);
}
END_TEST