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