Find a file
Peter Hutterer 84e6321f51 test: add a backtrace facility to litest
The check unit test framework isn't particularly suited to having ck_assert*
calls in helper functions. A failed assertion in a helper function or the
litest framework merely gives us a the failed line in litest.c.
which doesn't tell us which test actually failed.

Add a backtracing facility with litest_backtrace(). And since this requires
wrapping all ck_assert macros with litest_assert() this patch ended up
replacing/duplicating a bunch of ck_assert_* bits. So rather than
ck_assert_int_eq() we now use litest_assert_int_eq(), etc. in the litest
framework itself.

The int comparison macros are more type-safe than ck_assert()'s macros which
just cast all the ints to intmax_t.

Backtrace is spewed to stderr, which is good enough for debugging. Example
backtrace:

	FAILED COMPARISON: status != expected
	Resolved to: 0 != 0
	in disable_button_scrolling() (pointer.c:115)

	Backtrace:
	0: ./test/test-pointer (litest_fail_comparison_int+0xab) [0x40973b]
	1: ./test/test-pointer (disable_button_scrolling+0x174) [0x40421b]
	2: ./test/test-pointer (middlebutton_middleclick+0x40) [0x40829c]
	3: /lib64/libcheck.so.0 (srunner_run+0x7f5) [0x7f0e8a277025]
	4: ./test/test-pointer (litest_run+0x107) [0x40a42b]
	5: ./test/test-pointer (main+0x2fa) [0x4090e7]
	6: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7f0e88f5e790]
	7: ./test/test-pointer (_start+0x29) [0x403ce9]
	8: ? (?+0x29) [0x29]

litest_backtrace() itself is copied from xserver/os/backtrace.c which git
blame attributes to Marcin.

CC:  Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2015-05-18 20:55:48 +10:00
doc doc: add some documentation for disable-while-typing 2015-05-18 15:16:33 +10:00
include/linux Update to v4.0 kernel header 2015-04-22 08:24:38 +10:00
m4 Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
src touchpad: use a two-stage timeout for disable-while-typing 2015-05-18 14:39:22 +10:00
test test: add a backtrace facility to litest 2015-05-18 20:55:48 +10:00
tools tools: add middle button emulation to listed capabilities 2015-05-07 16:30:08 +10:00
udev touchpad: enable clickfinger by default on some System76 laptops 2015-05-05 07:36:14 +10:00
.gitignore add simple symbols leak checker 2015-02-13 10:20:44 +10:00
autogen.sh Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
configure.ac test: add a backtrace facility to litest 2015-05-18 20:55:48 +10:00
COPYING filter: add Simon's copyright 2015-05-07 08:02:58 +10:00
Makefile.am Add udev bits to assign LIBINPUT_DEVICE_GROUP 2015-02-18 10:08:29 +10:00
README.txt README: Add the libinput component to the bugzilla URL 2015-02-09 08:12:45 +10:00

/*!@mainpage

libinput
========

libinput is a library that handles input devices for display servers and other
applications that need to directly deal with input devices.

It provides device detection, device handling, input device event processing
and abstraction so minimize the amount of custom input code the user of
libinput need to provide the common set of functionality that users expect.

Input event processing includes scaling touch coordinates, generating
pointer events from touchpads, pointer acceleration, etc.

libinput originates from weston, the Wayland reference compositor.

The source code of libinput can be found at:
http://cgit.freedesktop.org/wayland/libinput

For more information, visit:
http://www.freedesktop.org/wiki/Software/libinput/

Bugs can be filed in the libinput component of Wayland:
https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=libinput

Online API documentation:
http://wayland.freedesktop.org/libinput/doc/latest/modules.html

*/