summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@googlemail.com>2012-04-22 17:07:11 +0200
committerDavid Herrmann <dh.herrmann@googlemail.com>2012-04-22 17:07:11 +0200
commit3c6d3ed468928b758507683fd05876811c203ac4 (patch)
tree5c10fa4fa52c21914044e399bdfccb03df9d5cec /tests
parent508a3be3635ffa368dadddc9fca3ad310c7f2b81 (diff)
test_input: use new test_include.h infrastructure
test_input compiles again and uses the same helpers as the other tests do. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/test_input.c77
1 files changed, 27 insertions, 50 deletions
diff --git a/tests/test_input.c b/tests/test_input.c
index f7ceefb..cf6a145 100644
--- a/tests/test_input.c
+++ b/tests/test_input.c
@@ -31,6 +31,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/signalfd.h>
#include <unistd.h>
#include <X11/keysym.h>
@@ -39,16 +40,11 @@
#include "input.h"
#include "kbd.h"
#include "log.h"
-
-static bool terminate;
-
-static void sig_term(struct ev_signal *sig, int signum, void *data)
-{
- terminate = true;
-}
+#include "test_include.h"
/* Pressing Ctrl-\ should toggle the capturing. */
-static void sig_quit(struct ev_signal *sig, int signum, void *data)
+static void sig_quit(struct ev_eloop *p, struct signalfd_siginfo *info,
+ void *data)
{
struct kmscon_input *input = data;
@@ -103,68 +99,49 @@ static void input_arrived(struct kmscon_input *input,
int main(int argc, char **argv)
{
int ret;
- struct ev_eloop *loop;
+ struct ev_eloop *eloop;
struct kmscon_input *input;
- struct ev_signal *sigint, *sigquit;
+
+ ret = test_prepare(argc, argv, &eloop);
+ if (ret)
+ goto err_fail;
if (!setlocale(LC_ALL, "")) {
- log_err("Cannot set locale: %m\n");
+ log_err("Cannot set locale: %m");
ret = -EFAULT;
- goto err_out;
- }
-
- ret = ev_eloop_new(&loop);
- if (ret) {
- log_err("Cannot create eloop\n");
- goto err_out;
+ goto err_exit;
}
ret = kmscon_input_new(&input);
- if (ret) {
- log_err("Cannot create input\n");
- goto err_loop;
- }
+ if (ret)
+ goto err_exit;
- ret = ev_eloop_new_signal(loop, &sigint, SIGINT, sig_term, NULL);
- if (ret) {
- log_err("Cannot add INT signal\n");
+ ret = ev_eloop_register_signal_cb(eloop, SIGQUIT, sig_quit, input);
+ if (ret)
goto err_input;
- }
- ret = ev_eloop_new_signal(loop, &sigquit, SIGQUIT, sig_quit, input);
- if (ret) {
- log_err("Cannot add quit signal\n");
- goto err_sigint;
- }
+ ret = kmscon_input_connect_eloop(input, eloop);
+ if (ret)
+ goto err_sigquit;
- ret = kmscon_input_connect_eloop(input, loop, input_arrived, NULL);
- if (ret) {
- log_err("Cannot connect input\n");
+ ret = kmscon_input_register_cb(input, input_arrived, NULL);
+ if (ret)
goto err_sigquit;
- }
kmscon_input_wake_up(input);
system("stty -echo");
-
- while (!terminate) {
- ret = ev_eloop_dispatch(loop, -1);
- if (ret) {
- log_err("Dispatcher failed\n");
- break;
- }
- }
-
+ ev_eloop_run(eloop, -1);
system("stty echo");
+ kmscon_input_unregister_cb(input, input_arrived, NULL);
err_sigquit:
- ev_eloop_rm_signal(sigquit);
-err_sigint:
- ev_eloop_rm_signal(sigint);
+ ev_eloop_unregister_signal_cb(eloop, SIGQUIT, sig_quit, input);
err_input:
kmscon_input_unref(input);
-err_loop:
- ev_eloop_unref(loop);
-err_out:
+err_exit:
+ test_exit(eloop);
+err_fail:
+ test_fail(ret);
return abs(ret);
}