[PATCH xserver 04/17] Test: Input: Check flags on DeviceEvent

Peter Hutterer peter.hutterer at who-t.net
Tue Jan 4 20:08:48 PST 2011


On Tue, Dec 28, 2010 at 05:57:55PM +0000, Daniel Stone wrote:
> Add initial validation of acceptable flags for XI2 device events, and
> make sure they're swapped.
> 
> Signed-off-by: Daniel Stone <daniel at fooishbar.org>

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

> ---
>  test/xi2/protocol-eventconvert.c |   12 +++++++++++-
>  1 files changed, 11 insertions(+), 1 deletions(-)
> 
> diff --git a/test/xi2/protocol-eventconvert.c b/test/xi2/protocol-eventconvert.c
> index 211cce6..0478c33 100644
> --- a/test/xi2/protocol-eventconvert.c
> +++ b/test/xi2/protocol-eventconvert.c
> @@ -272,6 +272,7 @@ static void test_values_XIDeviceEvent(DeviceEvent *in, xXIDeviceEvent *out,
>      int buttons, valuators;
>      int i;
>      unsigned char *ptr;
> +    uint32_t flagmask = 0;
>      FP3232 *values;
>  
>      if (swap) {
> @@ -297,6 +298,7 @@ static void test_values_XIDeviceEvent(DeviceEvent *in, xXIDeviceEvent *out,
>          swapl(&out->mods.latched_mods, n);
>          swapl(&out->mods.locked_mods, n);
>          swapl(&out->mods.effective_mods, n);
> +        swapl(&out->flags, n);
>      }
>  
>      g_assert(out->extension == 0); /* IReqCode defaults to 0 */
> @@ -308,7 +310,15 @@ static void test_values_XIDeviceEvent(DeviceEvent *in, xXIDeviceEvent *out,
>      g_assert(out->deviceid == in->deviceid);
>      g_assert(out->sourceid == in->sourceid);
>  
> -    g_assert(out->flags == 0); /* FIXME: we don't set the flags yet */
> +    switch (in->type) {
> +        case ET_KeyPress:
> +            flagmask = XIKeyRepeat;
> +            break;
> +        default:
> +            flagmask = 0;
> +            break;
> +    }
> +    g_assert((out->flags & ~flagmask) == 0);
>  
>      g_assert(out->root == in->root);
>      g_assert(out->event == None); /* set in FixUpEventFromWindow */
> -- 
> 1.7.2.3
 


More information about the xorg-devel mailing list