Re: [PATCH v1 8/8] kunit: Add tests for faults

Mickaël Salaün
2024-03-01T19:16:24Z

On Thu, Feb 29, 2024 at 10:28:18AM -0800, Kees Cook wrote:
> On Thu, Feb 29, 2024 at 06:04:09PM +0100, Mickaël Salaün wrote:
> > The first test checks NULL pointer dereference and make sure it would
> > result as a failed test.
> >
> > The second and third tests check that read-only data is indeed read-only
> > and trying to modify it would result as a failed test.
> >
> > This kunit_x86_fault test suite is marked as skipped when run on a
> > non-x86 native architecture. It is then skipped on UML because such
> > test would result to a kernel panic.
> >
> > Tested with:
> > ./tools/testing/kunit/kunit.py run --arch x86_64 kunit_x86_fault
> >
> > Cc: Brendan Higgins <brendanhiggins@google.com>
> > Cc: David Gow <davidgow@google.com>
> > Cc: Rae Moar <rmoar@google.com>
> > Cc: Shuah Khan <skhan@linuxfoundation.org>
> > Signed-off-by: Mickaël Salaün <mic@digikod.net>
>
> If we can add some way to collect WARN/BUG output for examination, I
> could rewrite most of LKDTM in KUnit! I really like this!

Thanks! About the WARN/BUG examination, I guess the easier way would be
to do in in user space by extending kunit_parser.py.

>
> > ---
> > lib/kunit/kunit-test.c | 115 ++++++++++++++++++++++++++++++++++++++++-
> > 1 file changed, 114 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/kunit/kunit-test.c b/lib/kunit/kunit-test.c
> > index f7980ef236a3..57d8eff00c66 100644
> > --- a/lib/kunit/kunit-test.c
> > +++ b/lib/kunit/kunit-test.c
> > @@ -10,6 +10,7 @@
> > #include <kunit/test-bug.h>
> >
> > #include <linux/device.h>
> > +#include <linux/init.h>
> > #include <kunit/device.h>
> >
> > #include "string-stream.h"
> > @@ -109,6 +110,117 @@ static struct kunit_suite kunit_try_catch_test_suite = {
> > .test_cases = kunit_try_catch_test_cases,
> > };
> >
> > +#ifdef CONFIG_X86
>
> Why is this x86 specific?

Because I didn't test on other architecture, and it looks it crashed on
arm64. :)

I'll test on arm64 and change this condition with !CONFIG_UML.

>
> --
> Kees Cook
>