All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter
@ 2019-08-06 11:10 Jan Stancek
  2019-08-06 11:10 ` [LTP] [PATCH 2/2] clock_getres01: add test variants Jan Stancek
  2019-08-07  8:16 ` [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Li Wang
  0 siblings, 2 replies; 4+ messages in thread
From: Jan Stancek @ 2019-08-06 11:10 UTC (permalink / raw)
  To: ltp

Since commit a9446a906f52 ("lib/vdso/32: Remove inconsistent NULL pointer checks")
VDSO treats NULL parameter differently than in syscall.

Pass valid pointer. Subsequent patch will add test variants that test NULL
res parameter using syscall.

Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
 testcases/kernel/syscalls/clock_getres/clock_getres01.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/clock_getres/clock_getres01.c b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
index 15f32310839a..6b556965530e 100644
--- a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
+++ b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
@@ -28,7 +28,7 @@ static struct test_case {
 	{"MONOTONIC", CLOCK_MONOTONIC, &res, 0, 0},
 	{"PROCESS_CPUTIME_ID", CLOCK_PROCESS_CPUTIME_ID, &res, 0, 0},
 	{"THREAD_CPUTIME_ID", CLOCK_THREAD_CPUTIME_ID, &res, 0, 0},
-	{"REALTIME", CLOCK_REALTIME, NULL, 0, 0},
+	{"REALTIME", CLOCK_REALTIME, &res, 0, 0},
 	{"CLOCK_MONOTONIC_RAW", CLOCK_MONOTONIC_RAW, &res, 0, 0,},
 	{"CLOCK_REALTIME_COARSE", CLOCK_REALTIME_COARSE, &res, 0, 0,},
 	{"CLOCK_MONOTONIC_COARSE", CLOCK_MONOTONIC_COARSE, &res, 0, 0,},
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 2/2] clock_getres01: add test variants
  2019-08-06 11:10 [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Jan Stancek
@ 2019-08-06 11:10 ` Jan Stancek
  2019-08-07  8:16 ` [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Li Wang
  1 sibling, 0 replies; 4+ messages in thread
From: Jan Stancek @ 2019-08-06 11:10 UTC (permalink / raw)
  To: ltp

0 - default, could be either VDSO or syscall
1 - syscall with valid res parameter
2 - syscall with NULL res parameter

Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
 testcases/kernel/syscalls/clock_getres/clock_getres01.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/clock_getres/clock_getres01.c b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
index 6b556965530e..21c003aea50b 100644
--- a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
+++ b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
@@ -13,6 +13,7 @@
 #include <errno.h>
 
 #include "tst_test.h"
+#include "lapi/syscalls.h"
 #include "lapi/posix_clocks.h"
 
 static struct timespec res;
@@ -40,7 +41,18 @@ static struct test_case {
 
 static void do_test(unsigned int i)
 {
-	TEST(clock_getres(tcase[i].clk_id, tcase[i].res));
+	switch (tst_variant) {
+	case 0:
+		TEST(clock_getres(tcase[i].clk_id, tcase[i].res));
+		break;
+	case 1:
+		TEST(tst_syscall(__NR_clock_getres, tcase[i].clk_id,
+			tcase[i].res));
+		break;
+	case 2:
+		TEST(tst_syscall(__NR_clock_getres, tcase[i].clk_id, NULL));
+		break;
+	}
 
 	if (TST_RET != tcase[i].ret) {
 		if (TST_ERR == EINVAL) {
@@ -65,4 +77,5 @@ static void do_test(unsigned int i)
 static struct tst_test test = {
 	.test = do_test,
 	.tcnt = ARRAY_SIZE(tcase),
+	.test_variants = 3,
 };
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter
  2019-08-06 11:10 [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Jan Stancek
  2019-08-06 11:10 ` [LTP] [PATCH 2/2] clock_getres01: add test variants Jan Stancek
@ 2019-08-07  8:16 ` Li Wang
  2019-08-07 11:19   ` Jan Stancek
  1 sibling, 1 reply; 4+ messages in thread
From: Li Wang @ 2019-08-07  8:16 UTC (permalink / raw)
  To: ltp

Hi Jan,

On Tue, Aug 6, 2019 at 7:11 PM Jan Stancek <jstancek@redhat.com> wrote:
>
> Since commit a9446a906f52 ("lib/vdso/32: Remove inconsistent NULL pointer checks")
> VDSO treats NULL parameter differently than in syscall.
>
> Pass valid pointer. Subsequent patch will add test variants that test NULL
> res parameter using syscall.
>
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
> ---
>  testcases/kernel/syscalls/clock_getres/clock_getres01.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/syscalls/clock_getres/clock_getres01.c b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> index 15f32310839a..6b556965530e 100644
> --- a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> +++ b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> @@ -28,7 +28,7 @@ static struct test_case {
>         {"MONOTONIC", CLOCK_MONOTONIC, &res, 0, 0},
>         {"PROCESS_CPUTIME_ID", CLOCK_PROCESS_CPUTIME_ID, &res, 0, 0},
>         {"THREAD_CPUTIME_ID", CLOCK_THREAD_CPUTIME_ID, &res, 0, 0},
> -       {"REALTIME", CLOCK_REALTIME, NULL, 0, 0},
> +       {"REALTIME", CLOCK_REALTIME, &res, 0, 0},

If we change NULL to &res, it will be a duplicate of the first case.
So my suggest here is to remove it directly, since patch2/2 has
already added variants to test NULL via syscall.

Otherwise, the patchset looks good.

>         {"CLOCK_MONOTONIC_RAW", CLOCK_MONOTONIC_RAW, &res, 0, 0,},
>         {"CLOCK_REALTIME_COARSE", CLOCK_REALTIME_COARSE, &res, 0, 0,},
>         {"CLOCK_MONOTONIC_COARSE", CLOCK_MONOTONIC_COARSE, &res, 0, 0,},
> --
> 1.8.3.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp



-- 
Regards,
Li Wang

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter
  2019-08-07  8:16 ` [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Li Wang
@ 2019-08-07 11:19   ` Jan Stancek
  0 siblings, 0 replies; 4+ messages in thread
From: Jan Stancek @ 2019-08-07 11:19 UTC (permalink / raw)
  To: ltp



----- Original Message -----
> Hi Jan,
> 
> On Tue, Aug 6, 2019 at 7:11 PM Jan Stancek <jstancek@redhat.com> wrote:
> >
> > Since commit a9446a906f52 ("lib/vdso/32: Remove inconsistent NULL pointer
> > checks")
> > VDSO treats NULL parameter differently than in syscall.
> >
> > Pass valid pointer. Subsequent patch will add test variants that test NULL
> > res parameter using syscall.
> >
> > Signed-off-by: Jan Stancek <jstancek@redhat.com>
> > ---
> >  testcases/kernel/syscalls/clock_getres/clock_getres01.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> > b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> > index 15f32310839a..6b556965530e 100644
> > --- a/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> > +++ b/testcases/kernel/syscalls/clock_getres/clock_getres01.c
> > @@ -28,7 +28,7 @@ static struct test_case {
> >         {"MONOTONIC", CLOCK_MONOTONIC, &res, 0, 0},
> >         {"PROCESS_CPUTIME_ID", CLOCK_PROCESS_CPUTIME_ID, &res, 0, 0},
> >         {"THREAD_CPUTIME_ID", CLOCK_THREAD_CPUTIME_ID, &res, 0, 0},
> > -       {"REALTIME", CLOCK_REALTIME, NULL, 0, 0},
> > +       {"REALTIME", CLOCK_REALTIME, &res, 0, 0},
> 
> If we change NULL to &res, it will be a duplicate of the first case.
> So my suggest here is to remove it directly, since patch2/2 has
> already added variants to test NULL via syscall.

Not sure how I didn't see that, but I agree that it can be dropped.

> 
> Otherwise, the patchset looks good.
> 
> >         {"CLOCK_MONOTONIC_RAW", CLOCK_MONOTONIC_RAW, &res, 0, 0,},
> >         {"CLOCK_REALTIME_COARSE", CLOCK_REALTIME_COARSE, &res, 0, 0,},
> >         {"CLOCK_MONOTONIC_COARSE", CLOCK_MONOTONIC_COARSE, &res, 0, 0,},
> > --
> > 1.8.3.1
> >
> >
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
> 
> 
> 
> --
> Regards,
> Li Wang
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-08-07 11:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-06 11:10 [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Jan Stancek
2019-08-06 11:10 ` [LTP] [PATCH 2/2] clock_getres01: add test variants Jan Stancek
2019-08-07  8:16 ` [LTP] [PATCH 1/2] clock_getres01: pass non-NULL res as parameter Li Wang
2019-08-07 11:19   ` Jan Stancek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.