Geert Uytterhoeven geert@linux-m68k.org writes:
Hello Geert,
Hi Javier,
On Tue, May 2, 2023 at 12:17 PM Geert Uytterhoeven geert+renesas@glider.be 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!