Add initial validation of acceptable flags for XI2 device events, and
make sure they're swapped.

Signed-off-by: Daniel Stone <[email protected]>
---
 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

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to