mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-01-10 04:30:16 +01:00
test: add pointer comparison macros
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
84e6321f51
commit
dc3dbc4dfc
3 changed files with 179 additions and 0 deletions
|
|
@ -164,6 +164,131 @@ START_TEST(litest_int_ge_notrigger)
|
|||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_eq_notrigger)
|
||||
{
|
||||
int v = 10;
|
||||
int *a = &v;
|
||||
int *b = &v;
|
||||
int c = NULL;
|
||||
int d = NULL;
|
||||
|
||||
litest_assert_ptr_eq(a, b);
|
||||
litest_assert_ptr_eq(c, d);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_eq_trigger)
|
||||
{
|
||||
int v = 10;
|
||||
int v2 = 11;
|
||||
int *a = &v;
|
||||
int *b = &v2;
|
||||
|
||||
litest_assert_ptr_eq(a, b);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_eq_trigger_NULL)
|
||||
{
|
||||
int v = 10;
|
||||
int *a = &v;
|
||||
int *b = NULL;
|
||||
|
||||
litest_assert_ptr_eq(a, b);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_eq_trigger_NULL2)
|
||||
{
|
||||
int v = 10;
|
||||
int *a = &v;
|
||||
int *b = NULL;
|
||||
|
||||
litest_assert_ptr_eq(b, a);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_ne_trigger)
|
||||
{
|
||||
int v = 10;
|
||||
int *a = &v;
|
||||
int *b = &v;
|
||||
|
||||
litest_assert_ptr_ne(a, b);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_ne_trigger_NULL)
|
||||
{
|
||||
int *a = NULL;
|
||||
|
||||
litest_assert_ptr_ne(a, NULL);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_ne_trigger_NULL2)
|
||||
{
|
||||
int *a = NULL;
|
||||
|
||||
litest_assert_ptr_ne(NULL, a);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_ne_notrigger)
|
||||
{
|
||||
int v1 = 10;
|
||||
int v2 = 10;
|
||||
int *a = &v1;
|
||||
int *b = &v2;
|
||||
int *c = NULL;
|
||||
|
||||
litest_assert_ptr_ne(a, b);
|
||||
litest_assert_ptr_ne(a, c);
|
||||
litest_assert_ptr_ne(c, b);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_null_notrigger)
|
||||
{
|
||||
int *a = NULL;
|
||||
|
||||
litest_assert_ptr_null(a);
|
||||
litest_assert_ptr_null(NULL);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_null_trigger)
|
||||
{
|
||||
int v;
|
||||
int *a = &v;
|
||||
|
||||
litest_assert_ptr_null(a);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_notnull_notrigger)
|
||||
{
|
||||
int v;
|
||||
int *a = &v;
|
||||
|
||||
litest_assert_ptr_notnull(a);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_notnull_trigger)
|
||||
{
|
||||
int *a = NULL;
|
||||
|
||||
litest_assert_ptr_notnull(a);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(litest_ptr_notnull_trigger_NULL)
|
||||
{
|
||||
litest_assert_ptr_notnull(NULL);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
static Suite *
|
||||
litest_assert_macros_suite(void)
|
||||
{
|
||||
|
|
@ -201,6 +326,22 @@ litest_assert_macros_suite(void)
|
|||
tcase_add_test(tc, litest_int_gt_notrigger);
|
||||
suite_add_tcase(s, tc);
|
||||
|
||||
tc = tcase_create("pointer comparison ");
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_eq_trigger, SIGABRT);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_eq_trigger_NULL, SIGABRT);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_eq_trigger_NULL2, SIGABRT);
|
||||
tcase_add_test(tc, litest_ptr_eq_notrigger);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_ne_trigger, SIGABRT);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_ne_trigger_NULL, SIGABRT);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_ne_trigger_NULL2, SIGABRT);
|
||||
tcase_add_test(tc, litest_ptr_ne_notrigger);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_null_trigger, SIGABRT);
|
||||
tcase_add_test(tc, litest_ptr_null_notrigger);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_notnull_trigger, SIGABRT);
|
||||
tcase_add_test_raise_signal(tc, litest_ptr_notnull_trigger_NULL, SIGABRT);
|
||||
tcase_add_test(tc, litest_ptr_notnull_notrigger);
|
||||
suite_add_tcase(s, tc);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -188,6 +188,18 @@ litest_fail_comparison_int(const char *file,
|
|||
abort();
|
||||
}
|
||||
|
||||
void
|
||||
litest_fail_comparison_ptr(const char *file,
|
||||
int line,
|
||||
const char *func,
|
||||
const char *comparison)
|
||||
{
|
||||
litest_log("FAILED COMPARISON: %s\n", comparison);
|
||||
litest_log("in %s() (%s:%d)\n", func, file, line);
|
||||
litest_backtrace();
|
||||
abort();
|
||||
}
|
||||
|
||||
struct test {
|
||||
struct list node;
|
||||
char *name;
|
||||
|
|
|
|||
|
|
@ -89,6 +89,27 @@
|
|||
#define litest_assert_int_gt(a_, b_) \
|
||||
litest_assert_comparison_int_(a_, >, b_)
|
||||
|
||||
#define litest_assert_comparison_ptr_(a_, op_, b_) \
|
||||
do { \
|
||||
__typeof__(a_) _a = a_; \
|
||||
__typeof__(b_) _b = b_; \
|
||||
if (!((_a) op_ (_b))) \
|
||||
litest_fail_comparison_ptr(__FILE__, __LINE__, __func__,\
|
||||
#a_ " " #op_ " " #b_); \
|
||||
} while(0)
|
||||
|
||||
#define litest_assert_ptr_eq(a_, b_) \
|
||||
litest_assert_comparison_ptr_(a_, ==, b_)
|
||||
|
||||
#define litest_assert_ptr_ne(a_, b_) \
|
||||
litest_assert_comparison_ptr_(a_, !=, b_)
|
||||
|
||||
#define litest_assert_ptr_null(a_) \
|
||||
litest_assert_comparison_ptr_(a_, ==, NULL)
|
||||
|
||||
#define litest_assert_ptr_notnull(a_) \
|
||||
litest_assert_comparison_ptr_(a_, !=, NULL)
|
||||
|
||||
enum litest_device_type {
|
||||
LITEST_NO_DEVICE = -1,
|
||||
LITEST_SYNAPTICS_CLICKPAD = -2,
|
||||
|
|
@ -181,6 +202,11 @@ litest_fail_comparison_int(const char *file,
|
|||
int b,
|
||||
const char *astr,
|
||||
const char *bstr);
|
||||
void
|
||||
litest_fail_comparison_ptr(const char *file,
|
||||
int line,
|
||||
const char *func,
|
||||
const char *comparison);
|
||||
|
||||
void litest_add(const char *name, void *func,
|
||||
enum litest_device_feature required_feature,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue