Re: [PATCH v10 3/5] KASAN: Port KASAN Tests to KUnit
From: David Gow
Date: Tue Aug 04 2020 - 19:15:19 EST
On Tue, Aug 4, 2020 at 6:15 PM Andrey Konovalov <andreyknvl@xxxxxxxxxx> wrote:
>
> On Tue, Aug 4, 2020 at 12:59 AM David Gow <davidgow@xxxxxxxxxx> wrote:
> >
> > On Sat, Aug 1, 2020 at 3:10 PM David Gow <davidgow@xxxxxxxxxx> wrote:
> > >
> > > From: Patricia Alfonso <trishalfonso@xxxxxxxxxx>
> > >
> > > Transfer all previous tests for KASAN to KUnit so they can be run
> > > more easily. Using kunit_tool, developers can run these tests with their
> > > other KUnit tests and see "pass" or "fail" with the appropriate KASAN
> > > report instead of needing to parse each KASAN report to test KASAN
> > > functionalities. All KASAN reports are still printed to dmesg.
> > >
> > > Stack tests do not work properly when KASAN_STACK is enabled so
> > > those tests use a check for "if IS_ENABLED(CONFIG_KASAN_STACK)" so they
> > > only run if stack instrumentation is enabled. If KASAN_STACK is not
> > > enabled, KUnit will print a statement to let the user know this test
> > > was not run with KASAN_STACK enabled.
> > >
> > > copy_user_test and kasan_rcu_uaf cannot be run in KUnit so there is a
> > > separate test file for those tests, which can be run as before as a
> > > module.
> > >
> > > Signed-off-by: Patricia Alfonso <trishalfonso@xxxxxxxxxx>
> > > Signed-off-by: David Gow <davidgow@xxxxxxxxxx>
> > > Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>
> > > Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
> > > Reviewed-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
> > > ---
> > > lib/Kconfig.kasan | 22 +-
> > > lib/Makefile | 7 +-
> > > lib/kasan_kunit.c | 770 ++++++++++++++++++++++++++++++++
> > > lib/test_kasan.c | 946 ----------------------------------------
> > > lib/test_kasan_module.c | 111 +++++
> > > 5 files changed, 902 insertions(+), 954 deletions(-)
> > > create mode 100644 lib/kasan_kunit.c
> > > delete mode 100644 lib/test_kasan.c
> > > create mode 100644 lib/test_kasan_module.c
> >
> > Whoops -- this patch had a few nasty whitespace issues make it
> > through. I'll send out a new version with those fixed.
> >
> > I'm pondering splitting it up to do the file rename
> > (test_kasan.c->kasan_kunit.c) separately as well, as git's rename
> > detection is not particularly happy with it.
>
> Maybe also name it kunit_kasan.c? Probably in the future we'll have
> kunit_kmsan.c, etc.
The name here uses _kunit as a suffix as part of a plan to standardise
that for all KUnit tests.
There's some draft documentation for the proposed naming guidelines here:
https://lore.kernel.org/linux-kselftest/20200702071416.1780522-1-davidgow@xxxxxxxxxx/
(The idea here was for kunit tests for modules to nicely sort next to
the corresponding modules, which is why _kunit is a suffix, but that
doesn't really apply for something built-in like KASAN.)
-- David