[PATCH 06/42] tests: update for touch support
walter harms
wharms at bfs.de
Fri Dec 16 03:56:40 PST 2011
Am 16.12.2011 12:12, schrieb Peter Hutterer:
> On 16/12/11 20:56 , walter harms wrote:
>>
>>
>> Am 15.12.2011 04:01, schrieb Peter Hutterer:
>>> Touch event mask must be set for all three event types.
>>>
>>> Signed-off-by: Peter Hutterer<peter.hutterer at who-t.net>
>>> ---
>>> test/xi2/protocol-xipassivegrabdevice.c | 2 +-
>>> test/xi2/protocol-xiselectevents.c | 38
>>> ++++++++++++++++++++++++------
>>> 2 files changed, 31 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/test/xi2/protocol-xipassivegrabdevice.c
>>> b/test/xi2/protocol-xipassivegrabdevice.c
>>> index 89ffc3d..b405556 100644
>>> --- a/test/xi2/protocol-xipassivegrabdevice.c
>>> +++ b/test/xi2/protocol-xipassivegrabdevice.c
>>> @@ -180,7 +180,7 @@ static void test_XIPassiveGrabDevice(void)
>>> request->deviceid = XIAllMasterDevices;
>>>
>>> printf("Testing invalid grab types\n");
>>> - for (i = XIGrabtypeFocusIn + 1; i< 0xFF; i++)
>>> + for (i = XIGrabtypeTouchBegin + 1; i< 0xFF; i++)
>>> {
>>> request->grab_type = i;
>>> request_XIPassiveGrabDevice(&client_request, request,
>>> BadValue, request->grab_type);
>>> diff --git a/test/xi2/protocol-xiselectevents.c
>>> b/test/xi2/protocol-xiselectevents.c
>>> index 4eaf839..0390858 100644
>>> --- a/test/xi2/protocol-xiselectevents.c
>>> +++ b/test/xi2/protocol-xiselectevents.c
>>> @@ -125,6 +125,28 @@ static void
>>> request_XISelectEvent(xXISelectEventsReq *req, int error)
>>> assert(rc == error);
>>> }
>>>
>>> +static void _set_bit(unsigned char *bits, int bit)
>>> +{
>>> + SetBit(bits, bit);
>>> + if (bit>= XI_TouchBegin&& bit<= XI_TouchOwnership)
>>> + {
>>> + SetBit(bits, XI_TouchBegin);
>>> + SetBit(bits, XI_TouchUpdate);
>>> + SetBit(bits, XI_TouchEnd);
>>> + }
>>> +}
>>
>> So far i understand you want to avoid setting already set bits.
>> Would it hurt to set them again ?
>
> if any of the four XI_Touch* is set, begin/update/end must be set.
> setting them twice doesn't hurt, especially not in a test. And we have a
> test in input.c that makes sure that SetBit on masks works as expected,
> iirc.
>
>
>>> +static void _clear_bit(unsigned char *bits, int bit)
>>> +{
>>> + ClearBit(bits, bit);
>>> + if (bit>= XI_TouchBegin&& bit<= XI_TouchOwnership)
>>> + {
>>> + ClearBit(bits, XI_TouchBegin);
>>> + ClearBit(bits, XI_TouchUpdate);
>>> + ClearBit(bits, XI_TouchEnd);
>>> + }
>>> +}
>>> +
>>
>> The naming is unfortunate.
>
> huh?
>
>
you have a ClearBit(bits, bit); that set bit in bits, right ?
(if not the case folds here)
now you have a _clear_bit() that behaves differently as is tests
the bit argument, lets says in a future release XI_TouchBegin will
be >XI_TouchOwnership. Would you expekt that _clear_bit is responsible ?
Just call .. _clear_xi_bits() (no idea if that is a good name, neither it
is a matter of live and dead but if some odd things happen then they should
show up in tests).
re,
wh
>>> static void request_XISelectEvents_masks(xXISelectEventsReq *req)
>>> {
>>> int i, j;
>>> @@ -157,9 +179,9 @@ static void
>>> request_XISelectEvents_masks(xXISelectEventsReq *req)
>>> memset(bits, 0, mask->mask_len * 4);
>>> for (j = 0; j<= XI2LASTEVENT; j++)
>>> {
>>> - SetBit(bits, j);
>>> + _set_bit(bits, j);
>>> request_XISelectEvent(req, Success);
>>> - ClearBit(bits, j);
>>> + _clear_bit(bits, j);
>>> }
>>>
>>> /* Test 2:
>>> @@ -173,7 +195,7 @@ static void
>>> request_XISelectEvents_masks(xXISelectEventsReq *req)
>>>
>>> for (j = 0; j<= XI2LASTEVENT; j++)
>>> {
>>> - SetBit(bits, j);
>>> + _set_bit(bits, j);
>>> request_XISelectEvent(req, Success);
>>> }
>>>
>>> @@ -187,9 +209,9 @@ static void
>>> request_XISelectEvents_masks(xXISelectEventsReq *req)
>>>
>>> for (j = XI2LASTEVENT + 1; j< mask->mask_len * 4; j++)
>>> {
>>> - SetBit(bits, j);
>>> + _set_bit(bits, j);
>>> request_XISelectEvent(req, BadValue);
>>> - ClearBit(bits, j);
>>> + _clear_bit(bits, j);
>>> }
>>>
>>> /* Test 4:
>>> @@ -200,7 +222,7 @@ static void
>>> request_XISelectEvents_masks(xXISelectEventsReq *req)
>>> memset(bits, 0, mask->mask_len * 4);
>>> for (j = 0; j<= XI2LASTEVENT; j++)
>>> {
>>> - SetBit(bits, j);
>>> + _set_bit(bits, j);
>>> request_XISelectEvent(req, Success);
>>> }
>>>
>>> @@ -227,8 +249,8 @@ static void
>>> request_XISelectEvents_masks(xXISelectEventsReq *req)
>>> mask->mask_len = (nmasks + 3)/4;
>>> memset(bits, 0, mask->mask_len * 4);
>>> for (j = 0; j<= XI2LASTEVENT; j++)
>>> - SetBit(bits, j);
>>> - ClearBit(bits, XI_HierarchyChanged);
>>> + _set_bit(bits, j);
>>> + _clear_bit(bits, XI_HierarchyChanged);
>>> for (j = 1; j< 6; j++)
>>> {
>>> mask->deviceid = j;
>
>
More information about the xorg-devel
mailing list