Re: [PATCH v3 0/1] Add KUnit tests for llist

Shuah Khan
2024-09-20T15:10:39Z

On 9/20/24 01:10, David Gow wrote:
> On Fri, 20 Sept 2024 at 00:01, Shuah Khan <skhan@linuxfoundation.org> wrote:
>>
>> On 9/16/24 18:51, Artur Alves wrote:
>>> Hi all,
>>>
>>> This is part of a hackathon organized by LKCAMP[1], focused on writing
>>> tests using KUnit. We reached out a while ago asking for advice on what
>>> would be a useful contribution[2] and ended up choosing data structures
>>> that did not yet have tests.
>>>
>>> This patch adds tests for the llist data structure, defined in
>>> include/linux/llist.h, and is inspired by the KUnit tests for the doubly
>>> linked list in lib/list-test.c[3].
>>>
>>> It is important to note that this patch depends on the patch referenced
>>> in [4], as it utilizes the newly created lib/tests/ subdirectory.
>>>
>>> [1] https://lkcamp.dev/about/
>>> [2] https://lore.kernel.org/all/Zktnt7rjKryTh9-N@arch/
>>> [3] https://elixir.bootlin.com/linux/latest/source/lib/list-test.c
>>> [4] https://lore.kernel.org/all/20240720181025.work.002-kees@kernel.org/
>>>
>>> ---
>>> Changes in v3:
>>> - Resolved checkpatch warnings:
>>> - Renamed tests for macros starting with 'for_each'
>>
>> Shouldn't this a separate patch to make it easy to review?
>>
>
> I think that, if this were renaming these in an already existing test
> (like the confusingly similar list test), then yes. But since it's
> only a change from v2, I think we're okay.
>
>>> - Removed link from commit message
>>> - Replaced hardcoded constants with ENTRIES_SIZE
>>
>> Shouldn't this a separate patch to make it easy to review?
>
> Again, if we want to change this in other tests (list, hlist) we
> should split it into a separate patch, but I think it's okay for llist
> to go in with these already cleaned up.
>
>>
>>> - Updated initialization of llist_node array
>>> - Fixed typos
>>> - Update Kconfig.debug message for llist_kunit
>>
>> Are these changes to existing code or warnings on your added code?
>
> I think these are all changes to the added code since v2. Artur, is that right?
>
>>>
>>> Changes in v2:
>>> - Add MODULE_DESCRIPTION()
>>> - Move the tests from lib/llist_kunit.c to lib/tests/llist_kunit.c
>>> - Change the license from "GPL v2" to "GPL"
>>>
>>> Artur Alves (1):
>>> lib/llist_kunit.c: add KUnit tests for llist
>>>
>>> lib/Kconfig.debug | 11 ++
>>> lib/tests/Makefile | 1 +
>>> lib/tests/llist_kunit.c | 358 ++++++++++++++++++++++++++++++++++++++++
>>> 3 files changed, 370 insertions(+)
>>> create mode 100644 lib/tests/llist_kunit.c
>>>
>>
>> You are combining lot of changes in one single patch. Each change as a separate
>> patch will help reviewers.
>>
>> Adding new test should be a separate patch.
>>
>> - renaming as a separate patch
>>
>
> I think given that these are just changes between patch versions, not
> renaming/modifying already committed code, that this is okay to go in
> as one patch?
>
> The actual patch is only doing one thing: adding a test suite for the
> llist structure. I don't see the point in committing a version of it
> only to immediately rename things and clean bits up separately in this
> case.

I do think it will help to separate the renaming and adding a new test.
It makes it easier to follow.

thanks,
-- Shuah