[LTP] [PATCH] syscalls/ustat: Move the syscall to lapi
Richard Palethorpe
rpalethorpe@suse.de
Thu Feb 21 13:34:04 CET 2019
Hello,
Cyril Hrubis <chrubis@suse.cz> writes:
> The dev parameter needs to be casted to unsigned in some cases, let's
> move call to tst_syscall() from the tests to lapi so that the tests does
> not have to worry about the low level details.
>
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> CC: Steve Muckle <smuckle@google.com>
> CC: Richard Palethorpe <rpalethorpe@suse.com>
> ---
> include/lapi/ustat.h | 7 +++++++
> testcases/kernel/syscalls/ustat/ustat01.c | 5 ++---
> testcases/kernel/syscalls/ustat/ustat02.c | 5 ++---
> 3 files changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/include/lapi/ustat.h b/include/lapi/ustat.h
> index 12c073582..6365b2e92 100644
> --- a/include/lapi/ustat.h
> +++ b/include/lapi/ustat.h
> @@ -10,12 +10,19 @@
> #ifdef HAVE_SYS_USTAT_H
> # include <sys/ustat.h>
Just a thought, but this is potentially a problem if lib C implementes
ustat in user land, but the system call still exists. Which I think is
more likely with an obsolete system call.
> #else
> +# include "lapi/syscalls.h"
> +
> struct ustat {
> daddr_t f_tfree;
> ino_t f_tinode;
> char f_fname[6];
> char f_fpack[6];
> };
> +
> +static inline int ustat(dev_t dev, struct ustat *ubuf)
> +{
> + return tst_syscall(__NR_ustat, (unsigned int)dev, ubuf);
> +}
> #endif
>
> #endif /* LAPI_USTAT_H */
> diff --git a/testcases/kernel/syscalls/ustat/ustat01.c b/testcases/kernel/syscalls/ustat/ustat01.c
> index 2e7dcc9d7..729f8c106 100644
> --- a/testcases/kernel/syscalls/ustat/ustat01.c
> +++ b/testcases/kernel/syscalls/ustat/ustat01.c
> @@ -10,9 +10,8 @@
> #include <sys/types.h>
> #include <sys/stat.h>
>
> -#include "lapi/syscalls.h"
> -#include "lapi/ustat.h"
> #include "tst_test.h"
> +#include "lapi/ustat.h"
>
> static dev_t dev_num;
>
> @@ -20,7 +19,7 @@ void run(void)
> {
> struct ustat ubuf;
>
> - TEST(tst_syscall(__NR_ustat, (unsigned int)dev_num, &ubuf));
> + TEST(ustat(dev_num, &ubuf));
>
> if (TST_RET == -1)
> tst_res(TFAIL | TTERRNO, "ustat(2) failed");
> diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c
> index 9bbe4f3f5..3c9236200 100644
> --- a/testcases/kernel/syscalls/ustat/ustat02.c
> +++ b/testcases/kernel/syscalls/ustat/ustat02.c
> @@ -11,9 +11,8 @@
> #include <sys/stat.h>
> #include <sys/types.h>
>
> -#include "lapi/syscalls.h"
> -#include "lapi/ustat.h"
> #include "tst_test.h"
> +#include "lapi/ustat.h"
>
> static dev_t invalid_dev = -1;
> static dev_t root_dev;
> @@ -36,7 +35,7 @@ int TST_TOTAL = ARRAY_SIZE(tc);
>
> void run(unsigned int test)
> {
> - TEST(tst_syscall(__NR_ustat, *tc[test].dev, tc[test].buf));
> + TEST(ustat(*tc[test].dev, tc[test].buf));
>
> if ((TST_RET == -1) && (TST_ERR == tc[test].exp_errno))
> tst_res(TPASS | TTERRNO, "ustat(2) expected failure");
--
Thank you,
Richard.
More information about the ltp
mailing list