Re: [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework

From: Frank Rowand
Date: Wed May 08 2019 - 22:15:11 EST


On 5/8/19 6:58 PM, Theodore Ts'o wrote:
> On Wed, May 08, 2019 at 05:43:35PM -0700, Frank Rowand wrote:
>> kselftest provides a mechanism for in-kernel tests via modules. For
>> example, see:
>>
>> tools/testing/selftests/vm/run_vmtests invokes:
>> tools/testing/selftests/vm/test_vmalloc.sh
>> loads module:
>> test_vmalloc
>> (which is built from lib/test_vmalloc.c if CONFIG_TEST_VMALLOC)
>
> The majority of the kselftests are implemented as userspace programs.

Non-argument.


> You *can* run in-kernel test using modules; but there is no framework
> for the in-kernel code found in the test modules, which means each of
> the in-kernel code has to create their own in-kernel test
> infrastructure.

Why create an entire new subsystem (KUnit) when you can add a header
file (and .c code as appropriate) that outputs the proper TAP formatted
results from kselftest kernel test modules?

There are already a multitude of in kernel test modules used by
kselftest. It would be good if they all used a common TAP compliant
mechanism to report results.


> That's much like saying you can use vice grips to turn a nut or
> bolt-head. You *can*, but it might be that using a monkey wrench
> would be a much better tool that is much easier.
>
> What would you say to a wood worker objecting that a toolbox should
> contain a monkey wrench because he already knows how to use vise
> grips, and his tiny brain shouldn't be forced to learn how to use a
> wrench when he knows how to use a vise grip, which is a perfectly good
> tool?
>
> If you want to use vice grips as a hammer, screwdriver, monkey wrench,
> etc. there's nothing stopping you from doing that. But it's not fair
> to object to other people who might want to use better tools.
>
> The reality is that we have a lot of testing tools. It's not just
> kselftests. There is xfstests for file system code, blktests for
> block layer tests, etc. We use the right tool for the right job.

More specious arguments.

-Frank

>
> - Ted
>