* [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.