diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-09-03 16:54:44 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-09-10 09:54:29 +1000 |
commit | 112ac0351fa268522f836a28da6786c55e746ef7 (patch) | |
tree | 5dc19febc10dd0912de01b313c2bf9d6719bb4fe | |
parent | ad709cf95377d1f95b1db4aa2b7fec11382d44dc (diff) | |
download | libevdev-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.c | 29 |
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 |