public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH v1] Avoid messing with system tty in ioctl01.c
@ 2023-09-11 12:04 Marius Kittler
  2023-09-11 15:14 ` Cyril Hrubis
  0 siblings, 1 reply; 4+ messages in thread
From: Marius Kittler @ 2023-09-11 12:04 UTC (permalink / raw)
  To: ltp

* Use `openpty()` to create a new tty
* Remove `-D` option
* Remove requirement to run as root

Signed-off-by: Marius Kittler <mkittler@suse.de>
---
 runtest/syscalls                           |  2 +-
 testcases/kernel/syscalls/ioctl/ioctl01.c  | 25 ++++++++++------------
 testcases/kernel/syscalls/ioctl/test_ioctl | 23 --------------------
 3 files changed, 12 insertions(+), 38 deletions(-)

diff --git a/runtest/syscalls b/runtest/syscalls
index b1125dd75..f999bd74f 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -557,10 +557,10 @@ init_module01 init_module01
 init_module02 init_module02
 
 #Needs tty device.
-#ioctl01 ioctl01 -D /dev/tty0
 #ioctl02 ioctl02 -D /dev/tty0
 
 # Introducing ioctl tests for all /dev/tty* devices
+ioctl01      ioctl01
 ioctl01_02   test_ioctl
 ioctl03      ioctl03
 ioctl04      ioctl04
diff --git a/testcases/kernel/syscalls/ioctl/ioctl01.c b/testcases/kernel/syscalls/ioctl/ioctl01.c
index 3ca8a9a3b..fe6a5591d 100644
--- a/testcases/kernel/syscalls/ioctl/ioctl01.c
+++ b/testcases/kernel/syscalls/ioctl/ioctl01.c
@@ -23,11 +23,13 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <termios.h>
+#include <pty.h>
 #include "tst_test.h"
 #include "lapi/ioctl.h"
 
 #define	INVAL_IOCTL	9999999
 
+static int amaster, aslave;
 static int fd, fd_file;
 static int bfd = -1;
 
@@ -59,8 +61,6 @@ static struct tcase {
 	{&fd, TCGETS, 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),
@@ -69,31 +69,28 @@ static void verify_ioctl(unsigned int i)
 
 static void setup(void)
 {
-	if (!device)
-		tst_brk(TBROK, "You must specify a tty device with -D option");
+	if (openpty(&amaster, &aslave, NULL, &termios, NULL) < 0) {
+		tst_brk(TBROK | TERRNO, "unable to open pty");
+	}
 
-	fd = SAFE_OPEN(device, O_RDWR, 0777);
+	fd = amaster;
 	fd_file = SAFE_OPEN("x", O_CREAT, 0777);
 }
 
 static void cleanup(void)
 {
-	if (fd > 0)
-		SAFE_CLOSE(fd);
-
+	if (amaster > 0)
+		SAFE_CLOSE(amaster);
+	if (aslave > 0)
+		SAFE_CLOSE(aslave);
 	if (fd_file > 0)
 		SAFE_CLOSE(fd_file);
 }
 
 static struct tst_test test = {
-	.needs_root = 1,
 	.needs_tmpdir = 1,
 	.setup = setup,
 	.cleanup = cleanup,
 	.test = verify_ioctl,
-	.tcnt = ARRAY_SIZE(tcases),
-	.options = (struct tst_option[]) {
-		{"D:", &device, "Tty device. For example, /dev/tty[0-9]"},
-		{}
-	}
+	.tcnt = ARRAY_SIZE(tcases)
 };
diff --git a/testcases/kernel/syscalls/ioctl/test_ioctl b/testcases/kernel/syscalls/ioctl/test_ioctl
index 923275433..43836a229 100755
--- a/testcases/kernel/syscalls/ioctl/test_ioctl
+++ b/testcases/kernel/syscalls/ioctl/test_ioctl
@@ -34,29 +34,6 @@ has_tty()
     return 1
 }
 
-for tttype in `ls /dev/tty*`
-do
-device_no=${tttype#/dev/tty}
-case "$device_no" in
-[0-9]|[0-9][0-9])
-    has_tty $tttype
-    if [ $? -eq 0 ]; then
-        tst_resm TINFO "Skipping ioctl01 with $tttype"
-        continue
-    fi
-    tst_resm TINFO "Testing ioctl01 with $tttype"
-    ioctl01 -D $tttype
-    RC=$?
-    if  [ $RC -eq 0 ]
-    then
-     tst_resm TPASS "ioctl01 Passed with $tttype"
-    else
-     tst_resm TFAIL "ioctl01 Failed with $tttype"
-    fi
-echo;;
-esac
-done
-
 for tttype in `ls /dev/tty*`
 do
 device_no=${tttype#/dev/tty}
-- 
2.42.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-09-13 11:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-11 12:04 [LTP] [PATCH v1] Avoid messing with system tty in ioctl01.c Marius Kittler
2023-09-11 15:14 ` Cyril Hrubis
2023-09-11 15:23   ` Marius Kittler
2023-09-13 11:07     ` Cyril Hrubis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox