On Wed, Oct 19, 2022 at 5:06 PM David Gow davidgow@google.com wrote:
How does KUnit detect a KASAN failure for other tests than the KASAN ones? I thought this was only implemented for KASAN tests. At least, I don't see any code querying kunit_kasan_status outside of KASAN tests.
Yeah, there aren't any other tests which set up a "kasan_status" resource to expect specific failures, but we still want the fallback call to kunit_set_failure() so that any test which causes a KASAN report will fail: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/k...
Ah, right. Thanks for the explanation!
I'm currently switching KASAN tests from using KUnit resources to console tracepoints [1], and those patches will be in conflict with yours.
Ah, sorry -- I'd seen these go past, and totally forgot about them! I think all we really want to keep is the ability to fail tests if a KASAN report occurs. The tricky bit is then disabling that for the KASAN tests, so that they can have "expected" failures.
I wonder what's the best solution to support this, assuming KASAN tests are switched to using tracepoints... I guess we could still keep the per-task KUnit flag, and only use it for non-KASAN tests. However, they will still suffer from the same issue tracepoints solve for KASAN tests: if a bug is triggered in a context other than the current task, the test will succeed.