[LTP] [PATCH v2 1/2] Use correct ioctl request for termios
Martin Doucha
mdoucha@suse.cz
Thu Sep 7 13:44:21 CEST 2023
Hi,
this patch will be effectively reverted by the second one. Merge them
into a single patch.
On 05. 09. 23 11:30, Marius Kittler wrote:
> With the termios struct one is supposed to use TCGETS instead of TCGETA,
> see `man ioctl_tty`.
>
> Related issue: https://github.com/linux-test-project/ltp/issues/637#issuecomment-1705334874
> ---
> testcases/kernel/syscalls/ioctl/ioctl01.c | 19 ++++++++++---------
> 1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/ioctl/ioctl01.c b/testcases/kernel/syscalls/ioctl/ioctl01.c
> index 1be38e79d..983208925 100644
> --- a/testcases/kernel/syscalls/ioctl/ioctl01.c
> +++ b/testcases/kernel/syscalls/ioctl/ioctl01.c
> @@ -36,34 +36,35 @@ static struct termios termios;
>
> static struct tcase {
> int *fd;
> - int request;
> + int request_tio;
> + int request_tios;
> struct termio *s_tio;
> struct termios *s_tios;
> int error;
> } tcases[] = {
> /* file descriptor is invalid */
> - {&bfd, TCGETA, &termio, &termios, EBADF},
> + {&bfd, TCGETA, TCGETS, &termio, &termios, EBADF},
> /* termio address is invalid */
> - {&fd, TCGETA, (struct termio *)-1, (struct termios *)-1, EFAULT},
> - /* command is invalid */
> + {&fd, TCGETA, TCGETS, (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, &termios, ENOTTY},
> + {&fd, INVAL_IOCTL, INVAL_IOCTL, &termio, &termios, ENOTTY},
> /* file descriptor is for a regular file */
> - {&fd_file, TCGETA, &termio, &termios, ENOTTY},
> + {&fd_file, TCGETA, TCGETS, &termio, &termios, ENOTTY},
> /* termio is NULL */
> - {&fd, TCGETA, NULL, NULL, EFAULT}
> + {&fd, TCGETA, TCGETS, NULL, NULL, EFAULT}
> };
>
> static char *device;
>
> static void verify_ioctl(unsigned int i)
> {
> - TST_EXP_FAIL(ioctl(*(tcases[i].fd), tcases[i].request, tcases[i].s_tio),
> + TST_EXP_FAIL(ioctl(*(tcases[i].fd), tcases[i].request_tio, tcases[i].s_tio),
> tcases[i].error);
>
> - TST_EXP_FAIL(ioctl(*(tcases[i].fd), tcases[i].request, tcases[i].s_tios),
> + TST_EXP_FAIL(ioctl(*(tcases[i].fd), tcases[i].request_tios, tcases[i].s_tios),
> tcases[i].error);
> }
>
--
Martin Doucha mdoucha@suse.cz
SW Quality Engineer
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic
More information about the ltp
mailing list