2020-08-06 17:44:24

by Uriel Guajardo

[permalink] [raw]
Subject: [PATCH 2/2] kunit: ubsan integration

Integrates UBSAN into the KUnit testing framework. It fails KUnit tests
whenever it reports undefined behavior.

Signed-off-by: Uriel Guajardo <[email protected]>
---
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


2020-08-10 20:43:58

by Brendan Higgins

[permalink] [raw]
Subject: Re: [PATCH 2/2] kunit: ubsan integration

On Thu, Aug 6, 2020 at 10:43 AM Uriel Guajardo
<[email protected]> wrote:
>
> Integrates UBSAN into the KUnit testing framework. It fails KUnit tests
> whenever it reports undefined behavior.
>
> Signed-off-by: Uriel Guajardo <[email protected]>

You should resend this to the UBSAN maintainers as well; they will
need to sign off on this.

In the future, make sure to run get_maintainers.pl

Reviewed-by: Brendan Higgins <[email protected]>

> ---
> 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
>

2020-08-13 20:50:42

by Uriel Guajardo

[permalink] [raw]
Subject: Re: [PATCH 2/2] kunit: ubsan integration

On Mon, Aug 10, 2020 at 3:43 PM Brendan Higgins
<[email protected]> wrote:
>
> On Thu, Aug 6, 2020 at 10:43 AM Uriel Guajardo
> <[email protected]> wrote:
> >
> > Integrates UBSAN into the KUnit testing framework. It fails KUnit tests
> > whenever it reports undefined behavior.
> >
> > Signed-off-by: Uriel Guajardo <[email protected]>
>
> You should resend this to the UBSAN maintainers as well; they will
> need to sign off on this.
>
> In the future, make sure to run get_maintainers.pl

There are no listed UBSAN maintainers. Will instead resend to the
suggestions from get_maintainers.

>
> Reviewed-by: Brendan Higgins <[email protected]>
>
> > ---
> > 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
> >

2020-09-02 12:56:17

by Qian Cai

[permalink] [raw]
Subject: Re: [PATCH 2/2] kunit: ubsan integration

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 <[email protected]>

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
>

2020-09-03 12:53:26

by Qian Cai

[permalink] [raw]
Subject: Re: [PATCH 2/2] kunit: ubsan integration

On Wed, Sep 02, 2020 at 08:52:24AM -0400, Qian Cai wrote:
> 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 <[email protected]>
>
> 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

Stephen, Shuah, can you revert this commit or pick up its dependency as well?

https://lore.kernel.org/linux-kselftest/[email protected]/

Still seeing this on today's linux-next build.

>
> > ---
> > 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
> >

2020-09-09 03:03:23

by Stephen Rothwell

[permalink] [raw]
Subject: Re: [PATCH 2/2] kunit: ubsan integration

Hi Qian,

On Thu, 3 Sep 2020 08:38:25 -0400 Qian Cai <[email protected]> wrote:
>
> On Wed, Sep 02, 2020 at 08:52:24AM -0400, Qian Cai wrote:
> > 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 <[email protected]>
> >
> > 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
>
> Stephen, Shuah, can you revert this commit or pick up its dependency as well?

Sorry, for the slow response ... this should be gone today.

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature