On Tue, Feb 9, 2021 at 2:12 PM Alan Maguire alan.maguire@oracle.com wrote:
On Tue, 9 Feb 2021, Daniel Latypov wrote:
On Tue, Feb 9, 2021 at 9:26 AM Alan Maguire alan.maguire@oracle.com wrote:
On Fri, 5 Feb 2021, Daniel Latypov wrote:
From: Uriel Guajardo urielguajardo@google.com
Add a kunit_fail_current_test() function to fail the currently running test, if any, with an error message.
This is largely intended for dynamic analysis tools like UBSAN and for fakes. E.g. say I had a fake ops struct for testing and I wanted my `free` function to complain if it was called with an invalid argument, or caught a double-free. Most return void and have no normal means of signalling failure (e.g. super_operations, iommu_ops, etc.).
Key points:
Always update current->kunit_test so anyone can use it.
- commit 83c4e7a0363b ("KUnit: KASAN Integration") only updated it for
CONFIG_KASAN=y
Create a new header <kunit/test-bug.h> so non-test code doesn't have
to include all of <kunit/test.h> (e.g. lib/ubsan.c)
- Forward the file and line number to make it easier to track down
failures
Thanks for doing this!
- Declare it as a function for nice __printf() warnings about mismatched
format strings even when KUnit is not enabled.
One thing I _think_ this assumes is that KUnit is builtin; don't we need an
Ah, you're correct. Also going to rename it to have two _ to match other functions used in macros like __kunit_test_suites_init.
Great! If you're sending out an updated version with these changes, feel free to add
Reviewed-by: Alan Maguire alan.maguire@oracle.com
Oops, there was a race in sending v3 and seeing this in my inbox.
If you could reply to the v3 that'd be great. I've already amended the commit locally. Thanks!