[LTP] [PATCH v1] ioctl01.c:Test also struct termios
Li Wang
liwang@redhat.com
Fri Feb 3 10:03:11 CET 2023
On Mon, Jan 30, 2023 at 12:03 PM Wei Gao via ltp <ltp@lists.linux.it> wrote:
> ATM we're testing just legacy struct termio in ioctl01.c,
> we also need test struct termios.
>
> Signed-off-by: Wei Gao <wegao@suse.com>
>
Reviewed-by: Li Wang <liwang@redhat.com>
> ---
> testcases/kernel/syscalls/ioctl/ioctl01.c | 28 ++++++++++++++++++-----
> 1 file changed, 22 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/ioctl/ioctl01.c
> b/testcases/kernel/syscalls/ioctl/ioctl01.c
> index 2989c0e9b..cc8d1d731 100644
> --- a/testcases/kernel/syscalls/ioctl/ioctl01.c
> +++ b/testcases/kernel/syscalls/ioctl/ioctl01.c
> @@ -28,26 +28,28 @@ static int fd, fd_file;
> static int bfd = -1;
>
> static struct termio termio;
> +static struct termios termios;
>
> static struct tcase {
> int *fd;
> int request;
> struct termio *s_tio;
> + struct termios *s_tios;
> int error;
> } tcases[] = {
> /* file descriptor is invalid */
> - {&bfd, TCGETA, &termio, EBADF},
> + {&bfd, TCGETA, &termio, &termios, EBADF},
> /* termio address is invalid */
> - {&fd, TCGETA, (struct termio *)-1, EFAULT},
> + {&fd, TCGETA, (struct termio *)-1, (struct termios *)-1, EFAULT},
> /* command is invalid */
> /* This errno value was changed from EINVAL to ENOTTY
> * by kernel commit 07d106d0 and bbb63c51
> */
> - {&fd, INVAL_IOCTL, &termio, ENOTTY},
> + {&fd, INVAL_IOCTL, &termio, &termios, ENOTTY},
> /* file descriptor is for a regular file */
> - {&fd_file, TCGETA, &termio, ENOTTY},
> + {&fd_file, TCGETA, &termio, &termios, ENOTTY},
> /* termio is NULL */
> - {&fd, TCGETA, NULL, EFAULT}
> + {&fd, TCGETA, NULL, NULL, EFAULT}
> };
>
> static char *device;
> @@ -64,7 +66,21 @@ static void verify_ioctl(unsigned int i)
> if (TST_ERR != tcases[i].error) {
> tst_res(TFAIL | TTERRNO,
> "failed unexpectedly; expected %s",
> - tst_strerrno(tcases[i].error));
> + tst_strerrno(tcases[i].error));
> + return;
> + }
> +
> + TEST(ioctl(*(tcases[i].fd), tcases[i].request, tcases[i].s_tios));
> +
> + if (TST_RET != -1) {
> + tst_res(TFAIL, "call succeeded unexpectedly");
> + return;
> + }
> +
> + if (TST_ERR != tcases[i].error) {
> + tst_res(TFAIL | TTERRNO,
> + "failed unexpectedly; expected %s",
> + tst_strerrno(tcases[i].error));
> return;
> }
>
> --
> 2.35.3
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>
--
Regards,
Li Wang
More information about the ltp
mailing list