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

* Re: [LTP] [PATCH v1] Avoid messing with system tty in ioctl01.c
  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
  0 siblings, 1 reply; 4+ messages in thread
From: Cyril Hrubis @ 2023-09-11 15:14 UTC (permalink / raw)
  To: Marius Kittler; +Cc: ltp

Hi!
> * 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

This should be renamed to ioctl02 now I suppose.

>  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");
> +	}

It's better just to pass NULL instead of the zero filled &termios here.

The rest looks good to me, if you agree I can merge the patch with the
changes I've proposed.

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

* Re: [LTP] [PATCH v1] Avoid messing with system tty in ioctl01.c
  2023-09-11 15:14 ` Cyril Hrubis
@ 2023-09-11 15:23   ` Marius Kittler
  2023-09-13 11:07     ` Cyril Hrubis
  0 siblings, 1 reply; 4+ messages in thread
From: Marius Kittler @ 2023-09-11 15:23 UTC (permalink / raw)
  To: ltp

Am Montag, 11. September 2023, 17:14:53 CEST schrieb Cyril Hrubis:
> Hi!
> 
> > * 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
> 
> This should be renamed to ioctl02 now I suppose.
> 

Right, this should now be the only remaining test in `test_ioctl`.

> > 
> > -	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");
> > +	}
> 
> It's better just to pass NULL instead of the zero filled &termios here.
> 

Makes sense.

> The rest looks good to me, if you agree I can merge the patch with the
> changes I've proposed.

Yes, go ahead.



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

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

* Re: [LTP] [PATCH v1] Avoid messing with system tty in ioctl01.c
  2023-09-11 15:23   ` Marius Kittler
@ 2023-09-13 11:07     ` Cyril Hrubis
  0 siblings, 0 replies; 4+ messages in thread
From: Cyril Hrubis @ 2023-09-13 11:07 UTC (permalink / raw)
  To: Marius Kittler; +Cc: ltp

Hi!
Applied, thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

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

^ permalink raw reply	[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