On Sat, Aug 1, 2020 at 3:10 PM David Gow davidgow@google.com wrote:
From: Patricia Alfonso trishalfonso@google.com
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@google.com Signed-off-by: David Gow davidgow@google.com Reviewed-by: Brendan Higgins brendanhiggins@google.com Reviewed-by: Andrey Konovalov andreyknvl@google.com Reviewed-by: Dmitry Vyukov dvyukov@google.com
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.
Sorry, -- David