mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-30 11:50:08 +01:00
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>
23 lines
404 B
Text
23 lines
404 B
Text
{
|
|
srunner_run::timer_create-uninitialized-bytes
|
|
Memcheck:Param
|
|
timer_create(evp)
|
|
fun:timer_create@@GLIBC_2.3.3
|
|
fun:srunner_run
|
|
fun:litest_run
|
|
fun:main
|
|
}
|
|
{
|
|
mtdev:conditional_jumps_uninitialized_value
|
|
Memcheck:Cond
|
|
...
|
|
fun:mtdev_put_event
|
|
}
|
|
{
|
|
libunwind:msync_uninitialized_bytes
|
|
Memcheck:Param
|
|
msync(start)
|
|
fun:__msync_nocancel
|
|
...
|
|
fun:litest_backtrace
|
|
}
|