On Thu, Aug 06, 2020 at 05:43:26PM +0000, Uriel Guajardo wrote:
Integrates UBSAN into the KUnit testing framework. It fails KUnit tests whenever it reports undefined behavior.
Signed-off-by: Uriel Guajardo urielguajardo@google.com
It looks like this patch had been merged into linux-next but the "[PATCH 1/2] kunit: support failure from dynamic analysis tools" did not. Hence, it caused a compiling failure.
lib/ubsan.c: In function ‘ubsan_prologue’: lib/ubsan.c:141:2: error: implicit declaration of function ‘kunit_fail_current_test’; did you mean ‘kunit_init_test’? [-Werror=implicit-function-declaration] kunit_fail_current_test(); ^~~~~~~~~~~~~~~~~~~~~~~ kunit_init_test cc1: some warnings being treated as errors
lib/ubsan.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/lib/ubsan.c b/lib/ubsan.c index cb9af3f6b77e..1460e2c828c8 100644 --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -14,6 +14,7 @@ #include <linux/types.h> #include <linux/sched.h> #include <linux/uaccess.h> +#include <kunit/test.h> #include "ubsan.h" @@ -137,6 +138,7 @@ static void ubsan_prologue(struct source_location *loc, const char *reason) { current->in_ubsan++;
- kunit_fail_current_test(); pr_err("========================================" "========================================\n"); pr_err("UBSAN: %s in %s:%d:%d\n", reason, loc->file_name,
-- 2.28.0.163.g6104cc2f0b6-goog