test: add tests for new valuator mask features

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Peter Hutterer 2015-05-06 15:25:28 +10:00
parent da10d0cb42
commit ad02d0df75

View File

@ -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();