From ad02d0df75318660c3f7cd6063eac409327fe560 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 6 May 2015 15:25:28 +1000 Subject: [PATCH] test: add tests for new valuator mask features Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede --- test/input.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/test/input.c b/test/input.c index a4615c9c9..91ee43c46 100644 --- a/test/input.c +++ b/test/input.c @@ -1357,6 +1357,68 @@ dix_valuator_mode(void) assert(valuator_get_mode(&dev, i) == Relative); } +static void +dix_input_valuator_masks_unaccel(void) +{ + ValuatorMask *mask = NULL; + double x, ux; + + /* set mask normally */ + mask = valuator_mask_new(MAX_VALUATORS); + assert(!valuator_mask_has_unaccelerated(mask)); + valuator_mask_set_double(mask, 0, 1.0); + assert(!valuator_mask_has_unaccelerated(mask)); + valuator_mask_unset(mask, 0); + assert(!valuator_mask_has_unaccelerated(mask)); + + /* all unset, now set accel mask */ + valuator_mask_set_unaccelerated(mask, 0, 1.0, 2.0); + assert(valuator_mask_has_unaccelerated(mask)); + assert(valuator_mask_isset(mask, 0)); + assert(!valuator_mask_isset(mask, 1)); + assert(valuator_mask_get_accelerated(mask, 0) == 1.0); + assert(valuator_mask_get_unaccelerated(mask, 0) == 2.0); + assert(valuator_mask_fetch_unaccelerated(mask, 0, &x, &ux)); + assert(x == 1.0); + assert(ux == 2.0); + x = 0xff; + ux = 0xfe; + assert(!valuator_mask_fetch_unaccelerated(mask, 1, &x, &ux)); + assert(x == 0xff); + assert(ux == 0xfe); + + /* all unset, now set normally again */ + valuator_mask_unset(mask, 0); + assert(!valuator_mask_has_unaccelerated(mask)); + assert(!valuator_mask_isset(mask, 0)); + valuator_mask_set_double(mask, 0, 1.0); + assert(!valuator_mask_has_unaccelerated(mask)); + valuator_mask_unset(mask, 0); + assert(!valuator_mask_has_unaccelerated(mask)); + + valuator_mask_zero(mask); + assert(!valuator_mask_has_unaccelerated(mask)); + + valuator_mask_set_unaccelerated(mask, 0, 1.0, 2.0); + valuator_mask_set_unaccelerated(mask, 1, 3.0, 4.5); + assert(valuator_mask_isset(mask, 0)); + assert(valuator_mask_isset(mask, 1)); + assert(!valuator_mask_isset(mask, 2)); + assert(valuator_mask_has_unaccelerated(mask)); + assert(valuator_mask_get_accelerated(mask, 0) == 1.0); + assert(valuator_mask_get_accelerated(mask, 1) == 3.0); + assert(valuator_mask_get_unaccelerated(mask, 0) == 2.0); + assert(valuator_mask_get_unaccelerated(mask, 1) == 4.5); + assert(valuator_mask_fetch_unaccelerated(mask, 0, &x, &ux)); + assert(x == 1.0); + assert(ux == 2.0); + assert(valuator_mask_fetch_unaccelerated(mask, 1, &x, &ux)); + assert(x == 3.0); + assert(ux == 4.5); + + valuator_mask_free(&mask); +} + static void include_bit_test_macros(void) { @@ -1847,6 +1909,7 @@ main(int argc, char **argv) dix_enqueue_events(); dix_double_fp_conversion(); dix_input_valuator_masks(); + dix_input_valuator_masks_unaccel(); dix_input_attributes(); dix_init_valuators(); dix_event_to_core_conversion();