[PATCH v4 0/7] Handle faults in KUnit tests

From: Mickaël Salaün
Date: Tue Mar 26 2024 - 05:52:05 EST


Hi,

This patch series teaches KUnit to handle kthread faults as errors, and
it brings a few related fixes and improvements.

Shuah, everything should be OK now, could you please merge this series?

All these tests pass (on top of v6.8):
/tools/testing/kunit/kunit.py run --alltests
/tools/testing/kunit/kunit.py run --alltests --arch x86_64
/tools/testing/kunit/kunit.py run --alltests --arch arm64 \
--cross_compile=aarch64-linux-gnu-

I also built and ran KUnit tests as a kernel module.

A new test case check NULL pointer dereference, which wasn't possible
before.

This is useful to test current kernel self-protection mechanisms or
future ones such as Heki: https://github.com/heki-linux

Previous versions:
v3: https://lore.kernel.org/r/20240319104857.70783-1-mic@xxxxxxxxxxx
v2: https://lore.kernel.org/r/20240301194037.532117-1-mic@xxxxxxxxxxx
v1: https://lore.kernel.org/r/20240229170409.365386-1-mic@xxxxxxxxxxx

Regards,

Mickaël Salaün (7):
kunit: Handle thread creation error
kunit: Fix kthread reference
kunit: Fix timeout message
kunit: Handle test faults
kunit: Fix KUNIT_SUCCESS() calls in iov_iter tests
kunit: Print last test location on fault
kunit: Add tests for fault

include/kunit/test.h | 24 ++++++++++++++++++---
include/kunit/try-catch.h | 3 ---
kernel/kthread.c | 1 +
lib/kunit/kunit-test.c | 45 ++++++++++++++++++++++++++++++++++++++-
lib/kunit/try-catch.c | 38 ++++++++++++++++++++++-----------
lib/kunit_iov_iter.c | 18 ++++++++--------
6 files changed, 101 insertions(+), 28 deletions(-)


base-commit: e8f897f4afef0031fe618a8e94127a0934896aba
--
2.44.0