[LTP] [PATCH v1] ioctl01.c:Test also struct termios
Wei Gao
wegao@suse.com
Sun Jan 29 19:39:30 CET 2023
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>
---
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
More information about the ltp
mailing list