Re: [PATCH 0/2] Input: tests - miscellaneous fixes

From: Javier Martinez Canillas
Date: Tue May 02 2023 - 12:32:40 EST


Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> writes:

Hello Geert,

> Hi Javier,
>
> On Tue, May 2, 2023 at 12:17 PM Geert Uytterhoeven
> <geert+renesas@xxxxxxxxx> wrote:
>> This patch series fixes a crash in the new input selftest, and makes the
>> test available when the KUnit framework is modular.
>>
>> Unfortunately test 3 still fails for me (tested on Koelsch (R-Car M2-W)
>> and ARAnyM):
>>
>> KTAP version 1
>> # Subtest: input_core
>> 1..3
>> input: Test input device as /devices/virtual/input/input1
>> ok 1 input_test_polling
>> input: Test input device as /devices/virtual/input/input2
>> ok 2 input_test_timestamp
>> input: Test input device as /devices/virtual/input/input3
>> # input_test_match_device_id: ASSERTION FAILED at # drivers/input/tests/input_test.c:99
>> Expected input_match_device_id(input_dev, &id) to be true, but is false
>> not ok 3 input_test_match_device_id
>> # input_core: pass:2 fail:1 skip:0 total:3
>> # Totals: pass:2 fail:1 skip:0 total:3
>> not ok 1 input_core
>
> Adding more debug code shows that it's the test on evbit [1] in
> input_match_device_id() that fails.
> Looking at your input_test_match_device_id(), I think you expect
> the checks for the various bitmaps to be gated by
> "if (id->flags & INPUT_DEVICE_ID_MATCH_EVBIT)", like is done for the
> other checks?
>
> [1] https://elixir.bootlin.com/linux/latest/source/drivers/input/input.c#L1021
>

That's correct. In input_test_init(), the input dev is marked as capable
of emitting EV_KEY BTN_LEFT and BTN_RIGHT. The goal of that test was to
check this.

That is, check if matches by the input dev capabilities in which case the
__set_bit(EV_KEY, ...) would make the match true and __set_bit(EV_ABS, ..)
would make the condition false.

But maybe I misunderstood how the input_set_capability() and __set_bit()
functions work ?

I'll take a look to this tomorrow, thanks a lot for your report!

--
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat