2 * Copyright © 2013 Red Hat, Inc.
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that copyright
7 * notice and this permission notice appear in supporting documentation, and
8 * that the name of the copyright holders not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission. The copyright holders make no representations
11 * about the suitability of this software for any purpose. It is provided "as
12 * is" without express or implied warranty.
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
27 #include <sys/ptrace.h>
29 #include <libevdev/libevdev.h>
31 #include "test-common.h"
33 extern Suite *event_name_suite(void);
34 extern Suite *event_code_suite(void);
35 extern Suite *libevdev_init_test(void);
36 extern Suite *queue_suite(void);
37 extern Suite *libevdev_has_event_test(void);
38 extern Suite *libevdev_events(void);
39 extern Suite *uinput_suite(void);
42 is_debugger_attached(void)
53 if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) {
54 waitpid(ppid, NULL, 0);
55 ptrace(PTRACE_CONT, NULL, NULL);
56 ptrace(PTRACE_DETACH, ppid, NULL, NULL);
62 waitpid(pid, &status, 0);
63 rc = WEXITSTATUS(status);
69 int main(int argc, char **argv)
73 if (is_debugger_attached())
74 setenv("CK_FORK", "no", 0);
76 libevdev_set_log_function(test_logfunc_abort_on_error, NULL);
78 Suite *s = libevdev_has_event_test();
79 SRunner *sr = srunner_create(s);
80 srunner_add_suite(sr, libevdev_events());
81 srunner_add_suite(sr, libevdev_init_test());
82 srunner_add_suite(sr, queue_suite());
83 srunner_add_suite(sr, event_name_suite());
84 srunner_add_suite(sr, event_code_suite());
85 srunner_add_suite(sr, uinput_suite());
86 srunner_run_all(sr, CK_NORMAL);
88 failed = srunner_ntests_failed(sr);