public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH v1] Add test for UI_GET_NAME ioctl
@ 2023-10-12 11:13 Wei Gao via ltp
  2023-10-12 11:25 ` [LTP] [PATCH v2] " Wei Gao via ltp
  0 siblings, 1 reply; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-12 11:13 UTC (permalink / raw)
  To: ltp

Fix:#573
Signed-off-by: Wei Gao <wegao@suse.com>
---
 testcases/kernel/input/input_helper.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/input/input_helper.c b/testcases/kernel/input/input_helper.c
index 09530fb4d..a5e7bb109 100644
--- a/testcases/kernel/input/input_helper.c
+++ b/testcases/kernel/input/input_helper.c
@@ -32,6 +32,7 @@
 
 static int uinput_loaded;
 static int check_device(void);
+static int check_ui_get_sysname_ioctl(int fd);
 
 static int try_open_device(void)
 {
@@ -185,6 +186,27 @@ void send_rel_move(int fd, int x, int y)
 	send_event(fd, EV_SYN, 0, 0);
 }
 
+static int check_ui_get_sysname_ioctl(int fd)
+{
+	char name[256];
+	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
+
+	DIR *test_dir;
+	struct dirent *ent;
+
+	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
+
+	while ((ent = SAFE_READDIR(NULL, test_dir))) {
+		if (!strcmp(ent->d_name, name)) {
+			return 1;
+		}
+		else
+			continue;
+	}
+
+	return 0;
+}
+
 void create_device(int fd)
 {
 	int nb;
@@ -202,7 +224,7 @@ void create_device(int fd)
 	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
 
 	for (nb = 100; nb > 0; nb--) {
-		if (check_device())
+		if (check_device() && check_ui_get_sysname_ioctl(fd))
 			return;
 		usleep(10000);
 	}
-- 
2.35.3


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

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

* [LTP] [PATCH v2] Add test for UI_GET_NAME ioctl
  2023-10-12 11:13 [LTP] [PATCH v1] Add test for UI_GET_NAME ioctl Wei Gao via ltp
@ 2023-10-12 11:25 ` Wei Gao via ltp
  2023-10-12 14:05   ` Cyril Hrubis
  2023-10-14  3:31   ` [LTP] [PATCH v3] " Wei Gao via ltp
  0 siblings, 2 replies; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-12 11:25 UTC (permalink / raw)
  To: ltp

Fix:#573
Signed-off-by: Wei Gao <wegao@suse.com>
---
 testcases/kernel/input/input_helper.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/input/input_helper.c b/testcases/kernel/input/input_helper.c
index 09530fb4d..8f7d6b523 100644
--- a/testcases/kernel/input/input_helper.c
+++ b/testcases/kernel/input/input_helper.c
@@ -32,6 +32,7 @@
 
 static int uinput_loaded;
 static int check_device(void);
+static int check_ui_get_sysname_ioctl(int fd);
 
 static int try_open_device(void)
 {
@@ -185,6 +186,28 @@ void send_rel_move(int fd, int x, int y)
 	send_event(fd, EV_SYN, 0, 0);
 }
 
+static int check_ui_get_sysname_ioctl(int fd)
+{
+	char name[256];
+
+	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
+
+	DIR *test_dir;
+
+	struct dirent *ent;
+
+	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
+
+	while ((ent = SAFE_READDIR(NULL, test_dir))) {
+		if (!strcmp(ent->d_name, name))
+			return 1;
+		else
+			continue;
+	}
+
+	return 0;
+}
+
 void create_device(int fd)
 {
 	int nb;
@@ -202,7 +225,7 @@ void create_device(int fd)
 	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
 
 	for (nb = 100; nb > 0; nb--) {
-		if (check_device())
+		if (check_device() && check_ui_get_sysname_ioctl(fd))
 			return;
 		usleep(10000);
 	}
-- 
2.35.3


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

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

* Re: [LTP] [PATCH v2] Add test for UI_GET_NAME ioctl
  2023-10-12 11:25 ` [LTP] [PATCH v2] " Wei Gao via ltp
@ 2023-10-12 14:05   ` Cyril Hrubis
  2023-10-14  3:36     ` Wei Gao via ltp
  2023-10-14  3:31   ` [LTP] [PATCH v3] " Wei Gao via ltp
  1 sibling, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2023-10-12 14:05 UTC (permalink / raw)
  To: Wei Gao; +Cc: ltp

Hi!
> +static int check_ui_get_sysname_ioctl(int fd)
> +{
> +	char name[256];
> +
> +	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
> +
> +	DIR *test_dir;
> +
> +	struct dirent *ent;
> +
> +	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
> +
> +	while ((ent = SAFE_READDIR(NULL, test_dir))) {
> +		if (!strcmp(ent->d_name, name))
> +			return 1;
> +		else
> +			continue;
> +	}

Why do we loop over the directory here? Can't we just directly check
that the path /sys/devices/virtual/input/$name/ exists?

I guess that we can as well read the
/sys/devices/virtual/input/$name/dev and match that against fstat() on
the fd.

> +	return 0;
> +}
> +
>  void create_device(int fd)
>  {
>  	int nb;
> @@ -202,7 +225,7 @@ void create_device(int fd)
>  	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
>  
>  	for (nb = 100; nb > 0; nb--) {
> -		if (check_device())
> +		if (check_device() && check_ui_get_sysname_ioctl(fd))

Maybe it would be a bit more readable if we did:

		if (check_device() {
			check_ui_get_sysname_ioctl(fd);
			return;
		}

>  			return;
>  		usleep(10000);
>  	}
> -- 
> 2.35.3
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

* [LTP] [PATCH v3] Add test for UI_GET_NAME ioctl
  2023-10-12 11:25 ` [LTP] [PATCH v2] " Wei Gao via ltp
  2023-10-12 14:05   ` Cyril Hrubis
@ 2023-10-14  3:31   ` Wei Gao via ltp
  2023-10-17 11:08     ` Cyril Hrubis
  2023-10-17 13:16     ` [LTP] [PATCH v4] " Wei Gao via ltp
  1 sibling, 2 replies; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-14  3:31 UTC (permalink / raw)
  To: ltp

Fix:#573
Signed-off-by: Wei Gao <wegao@suse.com>
---
 testcases/kernel/input/input_helper.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/input/input_helper.c b/testcases/kernel/input/input_helper.c
index 09530fb4d..b9dc50a7f 100644
--- a/testcases/kernel/input/input_helper.c
+++ b/testcases/kernel/input/input_helper.c
@@ -32,6 +32,7 @@
 
 static int uinput_loaded;
 static int check_device(void);
+static void check_ui_get_sysname_ioctl(int fd);
 
 static int try_open_device(void)
 {
@@ -185,6 +186,22 @@ void send_rel_move(int fd, int x, int y)
 	send_event(fd, EV_SYN, 0, 0);
 }
 
+static void check_ui_get_sysname_ioctl(int fd)
+{
+	char sys_name[256];
+	char dev_name[256];
+	char *path;
+
+	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL);
+	SAFE_ASPRINTF(NULL, &path, "/sys/devices/virtual/input/%s/name", sys_name);
+	SAFE_FILE_SCANF(NULL, path, "%s", dev_name);
+
+	if (strcmp(VIRTUAL_DEVICE, dev_name)) {
+		tst_brkm(TBROK, NULL, "Unable to find the input device through ioctl");
+	}
+	free(path);
+}
+
 void create_device(int fd)
 {
 	int nb;
@@ -202,8 +219,10 @@ void create_device(int fd)
 	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
 
 	for (nb = 100; nb > 0; nb--) {
-		if (check_device())
+		if (check_device()) {
+			check_ui_get_sysname_ioctl(fd);
 			return;
+		}
 		usleep(10000);
 	}
 
-- 
2.35.3


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

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

* Re: [LTP] [PATCH v2] Add test for UI_GET_NAME ioctl
  2023-10-12 14:05   ` Cyril Hrubis
@ 2023-10-14  3:36     ` Wei Gao via ltp
  2023-10-16 15:49       ` Cyril Hrubis
  0 siblings, 1 reply; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-14  3:36 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: ltp

On Thu, Oct 12, 2023 at 04:05:21PM +0200, Cyril Hrubis wrote:
> Hi!
> > +static int check_ui_get_sysname_ioctl(int fd)
> > +{
> > +	char name[256];
> > +
> > +	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
> > +
> > +	DIR *test_dir;
> > +
> > +	struct dirent *ent;
> > +
> > +	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
> > +
> > +	while ((ent = SAFE_READDIR(NULL, test_dir))) {
> > +		if (!strcmp(ent->d_name, name))
> > +			return 1;
> > +		else
> > +			continue;
> > +	}
> 
> Why do we loop over the directory here? Can't we just directly check
> that the path /sys/devices/virtual/input/$name/ exists?
> 
> I guess that we can as well read the
> /sys/devices/virtual/input/$name/dev and match that against fstat() on
> the fd.
Seems no dev node can be found under /sys/devices/virtual/input/$name/.

ll /sys/devices/virtual/input/input13/
total 0
drwxr-xr-x 2 root root    0 Oct 13 21:32 capabilities
drwxr-xr-x 3 root root    0 Oct 13 21:32 event8
drwxr-xr-x 2 root root    0 Oct 13 21:32 id
-rw-r--r-- 1 root root 4.0K Oct 13 21:33 inhibited
-r--r--r-- 1 root root 4.0K Oct 13 21:33 modalias
drwxr-xr-x 3 root root    0 Oct 13 21:32 mouse3
-r--r--r-- 1 root root 4.0K Oct 13 21:32 name
-r--r--r-- 1 root root 4.0K Oct 13 21:32 phys
drwxr-xr-x 2 root root    0 Oct 13 21:33 power
-r--r--r-- 1 root root 4.0K Oct 13 21:32 properties
lrwxrwxrwx 1 root root    0 Oct 13 21:32 subsystem -> ../../../../class/input
-rw-r--r-- 1 root root 4.0K Oct 13 21:32 uevent
-r--r--r-- 1 root root 4.0K Oct 13 21:33 uniq

> 
> > +	return 0;
> > +}
> > +
> >  void create_device(int fd)
> >  {
> >  	int nb;
> > @@ -202,7 +225,7 @@ void create_device(int fd)
> >  	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
> >  
> >  	for (nb = 100; nb > 0; nb--) {
> > -		if (check_device())
> > +		if (check_device() && check_ui_get_sysname_ioctl(fd))
> 
> Maybe it would be a bit more readable if we did:
> 
> 		if (check_device() {
> 			check_ui_get_sysname_ioctl(fd);
> 			return;
> 		}
> 
> >  			return;
> >  		usleep(10000);
> >  	}
> > -- 
> > 2.35.3
> > 
> > 
> > -- 
> > Mailing list info: https://lists.linux.it/listinfo/ltp
> 
> -- 
> Cyril Hrubis
> chrubis@suse.cz

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

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

* Re: [LTP] [PATCH v2] Add test for UI_GET_NAME ioctl
  2023-10-14  3:36     ` Wei Gao via ltp
@ 2023-10-16 15:49       ` Cyril Hrubis
  2023-10-16 23:52         ` Wei Gao via ltp
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2023-10-16 15:49 UTC (permalink / raw)
  To: Wei Gao; +Cc: ltp

Hi!
> > > +static int check_ui_get_sysname_ioctl(int fd)
> > > +{
> > > +	char name[256];
> > > +
> > > +	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
> > > +
> > > +	DIR *test_dir;
> > > +
> > > +	struct dirent *ent;
> > > +
> > > +	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
> > > +
> > > +	while ((ent = SAFE_READDIR(NULL, test_dir))) {
> > > +		if (!strcmp(ent->d_name, name))
> > > +			return 1;
> > > +		else
> > > +			continue;
> > > +	}
> > 
> > Why do we loop over the directory here? Can't we just directly check
> > that the path /sys/devices/virtual/input/$name/ exists?
> > 
> > I guess that we can as well read the
> > /sys/devices/virtual/input/$name/dev and match that against fstat() on
> > the fd.
> Seems no dev node can be found under /sys/devices/virtual/input/$name/.
> 
> ll /sys/devices/virtual/input/input13/
> total 0
> drwxr-xr-x 2 root root    0 Oct 13 21:32 capabilities
> drwxr-xr-x 3 root root    0 Oct 13 21:32 event8
> drwxr-xr-x 2 root root    0 Oct 13 21:32 id
> -rw-r--r-- 1 root root 4.0K Oct 13 21:33 inhibited
> -r--r--r-- 1 root root 4.0K Oct 13 21:33 modalias
> drwxr-xr-x 3 root root    0 Oct 13 21:32 mouse3
> -r--r--r-- 1 root root 4.0K Oct 13 21:32 name
> -r--r--r-- 1 root root 4.0K Oct 13 21:32 phys
> drwxr-xr-x 2 root root    0 Oct 13 21:33 power
> -r--r--r-- 1 root root 4.0K Oct 13 21:32 properties
> lrwxrwxrwx 1 root root    0 Oct 13 21:32 subsystem -> ../../../../class/input
> -rw-r--r-- 1 root root 4.0K Oct 13 21:32 uevent
> -r--r--r-- 1 root root 4.0K Oct 13 21:33 uniq

Ah, right, it's under the event8 directory in this case. I guess that we
can match name againts the VIRTUAL_DEVICE string instead.

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

* Re: [LTP] [PATCH v2] Add test for UI_GET_NAME ioctl
  2023-10-16 15:49       ` Cyril Hrubis
@ 2023-10-16 23:52         ` Wei Gao via ltp
  0 siblings, 0 replies; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-16 23:52 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: ltp

On Mon, Oct 16, 2023 at 05:49:34PM +0200, Cyril Hrubis wrote:
> Hi!
> > > > +static int check_ui_get_sysname_ioctl(int fd)
> > > > +{
> > > > +	char name[256];
> > > > +
> > > > +	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(name)), name, NULL);
> > > > +
> > > > +	DIR *test_dir;
> > > > +
> > > > +	struct dirent *ent;
> > > > +
> > > > +	test_dir = SAFE_OPENDIR(NULL, "/sys/devices/virtual/input/");
> > > > +
> > > > +	while ((ent = SAFE_READDIR(NULL, test_dir))) {
> > > > +		if (!strcmp(ent->d_name, name))
> > > > +			return 1;
> > > > +		else
> > > > +			continue;
> > > > +	}
> > > 
> > > Why do we loop over the directory here? Can't we just directly check
> > > that the path /sys/devices/virtual/input/$name/ exists?
> > > 
> > > I guess that we can as well read the
> > > /sys/devices/virtual/input/$name/dev and match that against fstat() on
> > > the fd.
> > Seems no dev node can be found under /sys/devices/virtual/input/$name/.
> > 
> > ll /sys/devices/virtual/input/input13/
> > total 0
> > drwxr-xr-x 2 root root    0 Oct 13 21:32 capabilities
> > drwxr-xr-x 3 root root    0 Oct 13 21:32 event8
> > drwxr-xr-x 2 root root    0 Oct 13 21:32 id
> > -rw-r--r-- 1 root root 4.0K Oct 13 21:33 inhibited
> > -r--r--r-- 1 root root 4.0K Oct 13 21:33 modalias
> > drwxr-xr-x 3 root root    0 Oct 13 21:32 mouse3
> > -r--r--r-- 1 root root 4.0K Oct 13 21:32 name
> > -r--r--r-- 1 root root 4.0K Oct 13 21:32 phys
> > drwxr-xr-x 2 root root    0 Oct 13 21:33 power
> > -r--r--r-- 1 root root 4.0K Oct 13 21:32 properties
> > lrwxrwxrwx 1 root root    0 Oct 13 21:32 subsystem -> ../../../../class/input
> > -rw-r--r-- 1 root root 4.0K Oct 13 21:32 uevent
> > -r--r--r-- 1 root root 4.0K Oct 13 21:33 uniq
> 
> Ah, right, it's under the event8 directory in this case. I guess that we
> can match name againts the VIRTUAL_DEVICE string instead.
Yes, in v3 patch i start match name againts the VIRTUAL_DEVICE.
Thanks for the suggestion.
> 
> -- 
> Cyril Hrubis
> chrubis@suse.cz

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

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

* Re: [LTP] [PATCH v3] Add test for UI_GET_NAME ioctl
  2023-10-14  3:31   ` [LTP] [PATCH v3] " Wei Gao via ltp
@ 2023-10-17 11:08     ` Cyril Hrubis
  2023-10-17 13:16     ` [LTP] [PATCH v4] " Wei Gao via ltp
  1 sibling, 0 replies; 12+ messages in thread
From: Cyril Hrubis @ 2023-10-17 11:08 UTC (permalink / raw)
  To: Wei Gao; +Cc: ltp

Hi!
> Fix:#573
> Signed-off-by: Wei Gao <wegao@suse.com>
> ---
>  testcases/kernel/input/input_helper.c | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/testcases/kernel/input/input_helper.c b/testcases/kernel/input/input_helper.c
> index 09530fb4d..b9dc50a7f 100644
> --- a/testcases/kernel/input/input_helper.c
> +++ b/testcases/kernel/input/input_helper.c
> @@ -32,6 +32,7 @@
>  
>  static int uinput_loaded;
>  static int check_device(void);
> +static void check_ui_get_sysname_ioctl(int fd);

I do not think that this is needed, we do not call the function before
it's definition.

>  static int try_open_device(void)
>  {
> @@ -185,6 +186,22 @@ void send_rel_move(int fd, int x, int y)
>  	send_event(fd, EV_SYN, 0, 0);
>  }
>  
> +static void check_ui_get_sysname_ioctl(int fd)
> +{
> +	char sys_name[256];
> +	char dev_name[256];
> +	char *path;
> +
> +	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL);
> +	SAFE_ASPRINTF(NULL, &path, "/sys/devices/virtual/input/%s/name", sys_name);
> +	SAFE_FILE_SCANF(NULL, path, "%s", dev_name);

I would be inclined to use the FILE_SCANF() instead here and report
failure if the file does not exist or couldn't be read, something as:

	if (FILE_SCANF(NULL, path, "%s", dev_name)) {
		tst_res(TFAIL, "Failed to read name from the sysfs path");
		free(path);
		return;
	}

> +	if (strcmp(VIRTUAL_DEVICE, dev_name)) {
> +		tst_brkm(TBROK, NULL, "Unable to find the input device through ioctl");
> +	}

I do not think that tst_brkm() is the right here either, this is simple
TPASS/TFAIL situation. Can we just print TPASS/TFAIL based on if these
names match?

> +	free(path);
> +}
> +
>  void create_device(int fd)
>  {
>  	int nb;
> @@ -202,8 +219,10 @@ void create_device(int fd)
>  	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
>  
>  	for (nb = 100; nb > 0; nb--) {
> -		if (check_device())
> +		if (check_device()) {
> +			check_ui_get_sysname_ioctl(fd);
>  			return;
> +		}
>  		usleep(10000);
>  	}
>  
> -- 
> 2.35.3
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

* [LTP] [PATCH v4] Add test for UI_GET_NAME ioctl
  2023-10-14  3:31   ` [LTP] [PATCH v3] " Wei Gao via ltp
  2023-10-17 11:08     ` Cyril Hrubis
@ 2023-10-17 13:16     ` Wei Gao via ltp
  2023-10-23 14:16       ` Cyril Hrubis
  1 sibling, 1 reply; 12+ messages in thread
From: Wei Gao via ltp @ 2023-10-17 13:16 UTC (permalink / raw)
  To: ltp

Fix:#573
Signed-off-by: Wei Gao <wegao@suse.com>
---
 testcases/kernel/input/input_helper.c | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/input/input_helper.c b/testcases/kernel/input/input_helper.c
index 09530fb4d..609002e3e 100644
--- a/testcases/kernel/input/input_helper.c
+++ b/testcases/kernel/input/input_helper.c
@@ -185,6 +185,29 @@ void send_rel_move(int fd, int x, int y)
 	send_event(fd, EV_SYN, 0, 0);
 }
 
+static void check_ui_get_sysname_ioctl(int fd)
+{
+	char sys_name[256];
+	char dev_name[256];
+	char *path;
+
+	SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL);
+	SAFE_ASPRINTF(NULL, &path, "/sys/devices/virtual/input/%s/name", sys_name);
+
+	if (FILE_SCANF(path, "%s", dev_name)) {
+		tst_resm(TFAIL|TERRNO, "Failed to read name from the sysfs path");
+		free(path);
+		return;
+	}
+
+	if (!strcmp(VIRTUAL_DEVICE, dev_name))
+		tst_resm(TPASS, "Find the input device through ioctl");
+	else
+		tst_resm(TFAIL, "Unable to find the input device through ioctl");
+
+	free(path);
+}
+
 void create_device(int fd)
 {
 	int nb;
@@ -202,8 +225,10 @@ void create_device(int fd)
 	SAFE_IOCTL(NULL, fd, UI_DEV_CREATE, NULL);
 
 	for (nb = 100; nb > 0; nb--) {
-		if (check_device())
+		if (check_device()) {
+			check_ui_get_sysname_ioctl(fd);
 			return;
+		}
 		usleep(10000);
 	}
 
-- 
2.35.3


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

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

* Re: [LTP] [PATCH v4] Add test for UI_GET_NAME ioctl
  2023-10-17 13:16     ` [LTP] [PATCH v4] " Wei Gao via ltp
@ 2023-10-23 14:16       ` Cyril Hrubis
  2023-10-24  9:10         ` [LTP] [CI FAILURE] " Petr Vorel
  0 siblings, 1 reply; 12+ messages in thread
From: Cyril Hrubis @ 2023-10-23 14:16 UTC (permalink / raw)
  To: Wei Gao; +Cc: ltp

Hi!
I've adjusted the FAIL/PASS messages and pushed, thanks.

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

* [LTP] [CI FAILURE] Re:  [PATCH v4] Add test for UI_GET_NAME ioctl
  2023-10-23 14:16       ` Cyril Hrubis
@ 2023-10-24  9:10         ` Petr Vorel
  2023-10-24  9:33           ` Cyril Hrubis
  0 siblings, 1 reply; 12+ messages in thread
From: Petr Vorel @ 2023-10-24  9:10 UTC (permalink / raw)
  To: Cyril Hrubis; +Cc: ltp

Hi all,

> Hi!
> I've adjusted the FAIL/PASS messages and pushed, thanks.

UI_GET_NAME() from include/uapi/linux/uinput.h is not on the old CentOS 7 we
still support:

https://github.com/linux-test-project/ltp/actions/runs/6614554688/job/17964785134
/__w/ltp/ltp/testcases/kernel/input/input_helper.c:194:2: error: implicit declaration of function 'UI_GET_SYSNAME' [-Werror=implicit-function-declaration]
  SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL);
  ^

I'll have look later today for the fix. I suppose we need lapi/uinput.h with
adds a fallback definition. It was added in kernel v3.15 in
e3480a61fca7 ("Input: uinput - add UI_GET_SYSNAME ioctl to retrieve the sysfs path")

Also, there is also an API version change, we could use this if simple ifndef
UI_GET_SYSNAME + fallback will not be enough (e.g. test fails because it
requires newer kernel API).

-#define UINPUT_VERSION         3
+#define UINPUT_VERSION         4

Kind regards,
Petr

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

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

* Re: [LTP] [CI FAILURE] Re: [PATCH v4] Add test for UI_GET_NAME ioctl
  2023-10-24  9:10         ` [LTP] [CI FAILURE] " Petr Vorel
@ 2023-10-24  9:33           ` Cyril Hrubis
  0 siblings, 0 replies; 12+ messages in thread
From: Cyril Hrubis @ 2023-10-24  9:33 UTC (permalink / raw)
  To: Petr Vorel; +Cc: ltp

Hi!
> > I've adjusted the FAIL/PASS messages and pushed, thanks.
> 
> UI_GET_NAME() from include/uapi/linux/uinput.h is not on the old CentOS 7 we
> still support:
> 
> https://github.com/linux-test-project/ltp/actions/runs/6614554688/job/17964785134
> /__w/ltp/ltp/testcases/kernel/input/input_helper.c:194:2: error: implicit declaration of function 'UI_GET_SYSNAME' [-Werror=implicit-function-declaration]
>   SAFE_IOCTL(NULL, fd, UI_GET_SYSNAME(sizeof(sys_name)), sys_name, NULL);
>   ^
> 
> I'll have look later today for the fix. I suppose we need lapi/uinput.h with
> adds a fallback definition. It was added in kernel v3.15 in
> e3480a61fca7 ("Input: uinput - add UI_GET_SYSNAME ioctl to retrieve the sysfs path")
> 
> Also, there is also an API version change, we could use this if simple ifndef
> UI_GET_SYSNAME + fallback will not be enough (e.g. test fails because it
> requires newer kernel API).
> 
> -#define UINPUT_VERSION         3
> +#define UINPUT_VERSION         4

Given that UI_GET_SYSNAME is a macro we can do as well:

#ifndef UI_GET_SYSNAME
# define UI_GET_SYSNAME(len) ...
#endif

However at the same time we would need to actually check if the ioctl is
supported or not, because if the CentOS 7 kernel does not support
UI_GET_SYSNAME ioctl() the SAFE_IOCTL() will fail with EINVAL.

Also looking at the linux/uinput.h there are three more ioctls() added
in version 5 that should be tested as well. I suppose that we will need
add an issue for that.

-- 
Cyril Hrubis
chrubis@suse.cz

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

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

end of thread, other threads:[~2023-10-24  9:32 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-12 11:13 [LTP] [PATCH v1] Add test for UI_GET_NAME ioctl Wei Gao via ltp
2023-10-12 11:25 ` [LTP] [PATCH v2] " Wei Gao via ltp
2023-10-12 14:05   ` Cyril Hrubis
2023-10-14  3:36     ` Wei Gao via ltp
2023-10-16 15:49       ` Cyril Hrubis
2023-10-16 23:52         ` Wei Gao via ltp
2023-10-14  3:31   ` [LTP] [PATCH v3] " Wei Gao via ltp
2023-10-17 11:08     ` Cyril Hrubis
2023-10-17 13:16     ` [LTP] [PATCH v4] " Wei Gao via ltp
2023-10-23 14:16       ` Cyril Hrubis
2023-10-24  9:10         ` [LTP] [CI FAILURE] " Petr Vorel
2023-10-24  9:33           ` Cyril Hrubis

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