On Tue, Mar 24, 2020 at 4:25 AM Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote: > > On Thu, Mar 19, 2020 at 5:42 PM 'Patricia Alfonso' via kasan-dev > <kasan-dev@xxxxxxxxxxxxxxxx> wrote: > > > > 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 in UML so those tests are protected inside an > > "#if IS_ENABLED(CONFIG_KASAN_STACK)" so this only runs if stack > > instrumentation is enabled. > > > > copy_user_test cannot be run in KUnit so there is a separate test file > > for those tests, which can be run as before as a module. > > Hi Patricia, > > FWIW I've got some conflicts applying this patch on latest linux-next > next-20200324. There are some changes to the tests in mm tree I think. > > Which tree will this go through? I would be nice to resolve these > conflicts somehow, but I am not sure how. Maybe the kasan tests > changes are merged upstream next windows, and then rebase this? > > Also, how can I apply this for testing? I assume this is based on some > kunit branch? which one? > Hmm... okay, that sounds like a problem. I will have to look into the conflicts. I'm not sure which tree this will go through upstream; I expect someone will tell me which is best when the time comes. This is based on the kunit branch in the kunit documentation here: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/log/?h=kunit > Why the copy_from_user tests can't be converted? > It would be very nice to get rid of the modules entirely, rather than > having 2 different test procedures because of 2 tests. > Or, alternatively can there be other tests in future that can't be > converted? Naming it "KASAN_USER" looks somewhat overspecialized. Say > tomorrow we have another test that can't run under Kunit, but is not > related to copt_from_user, should we create yet another module for it? > I think the crux of that is that's a module, so a better name may be > "KASAN_TEST_MODULE". Currently all tests that need to run as module > are related to copy_from_user, but that's just an implementation > detail. > When I converted the copy_user_tests into KUnit, I was getting a kernel panic with a "Segfault with no mm." According to Brendan, since KUnit starts a new kthread and is not invoked via a syscall, things like copy_to_user won't work in the KUnit framework. I agree that the naming is too specific, but is KASAN_TEST_MODULE too generic since the current KASAN_TEST can be built as a module? Maybe TEST_KASAN can be KUNIT_TEST_KASAN and TEST_KASAN_USER can be TEST_KASAN_MODULE... -- Best, Patricia