diff mbox

Fix more test-errno issues

Message ID 1490730469-9562-1-git-send-email-adhemerval.zanella@linaro.org
State Accepted
Commit 2183741fdcc0377e3a4f917194799e576537967f
Headers show

Commit Message

Adhemerval Zanella Netto March 28, 2017, 7:47 p.m. UTC
This patch fixes some test-errno-linux unexpected returns for the
tested syscalls on some older kernels (I saw it on a Linux 3.8 on
armv7l).  Basically:

   - inotify_add_watch: Linux v3.8 (676a0675c) removed the test to
     check at least one valid bit in flags (to return EINVAL).  It
     was later added back in v3.9 (04df32fa1).

   - quotactl: returns ENOSYS for kernels not configured with
     CONFIG_QUOTA.

Checked on x86_64-linux-gnu and armv7l-linux-gnueabihf.

	* sysdeps/unix/sysv/linux/test-errno-linux.c (do_test): Handle
	non expected inotify_add_watch and quotactl return.
---
 ChangeLog                                  | 5 +++++
 sysdeps/unix/sysv/linux/test-errno-linux.c | 9 +++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

-- 
2.7.4

Comments

Adhemerval Zanella Netto March 30, 2017, 8:54 p.m. UTC | #1
If no one opposes I will commit it shortly.

On 28/03/2017 16:47, Adhemerval Zanella wrote:
> This patch fixes some test-errno-linux unexpected returns for the

> tested syscalls on some older kernels (I saw it on a Linux 3.8 on

> armv7l).  Basically:

> 

>    - inotify_add_watch: Linux v3.8 (676a0675c) removed the test to

>      check at least one valid bit in flags (to return EINVAL).  It

>      was later added back in v3.9 (04df32fa1).

> 

>    - quotactl: returns ENOSYS for kernels not configured with

>      CONFIG_QUOTA.

> 

> Checked on x86_64-linux-gnu and armv7l-linux-gnueabihf.

> 

> 	* sysdeps/unix/sysv/linux/test-errno-linux.c (do_test): Handle

> 	non expected inotify_add_watch and quotactl return.

> ---

>  ChangeLog                                  | 5 +++++

>  sysdeps/unix/sysv/linux/test-errno-linux.c | 9 +++++++--

>  2 files changed, 12 insertions(+), 2 deletions(-)

> 

> diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c

> index 03a74bd..87ed103 100644

> --- a/sysdeps/unix/sysv/linux/test-errno-linux.c

> +++ b/sysdeps/unix/sysv/linux/test-errno-linux.c

> @@ -147,7 +147,10 @@ do_test (void)

>    fails |= test_wrp (EBADF, fdatasync, -1);

>    fails |= test_wrp (EBADF, flock, -1, LOCK_SH);

>    fails |= test_wrp (ESRCH, getpgid, -1);

> -  fails |= test_wrp (EINVAL, inotify_add_watch, -1, "/", 0);

> +  /* Linux v3.8 (676a0675c) removed the test to check at least one valid

> +     bit in flags (to return EINVAL).  It was later added back in v3.9

> +     (04df32fa1).  */

> +  fails |= test_wrp2 (EINVAL, EBADF, inotify_add_watch, -1, "/", 0);

>    fails |= test_wrp (EINVAL, mincore, (void *) -1, 0, vec);

>    /* mlock fails if the result of the addition addr+len was less than addr

>       (which indicates final address overflow), however on 32 bits binaries

> @@ -157,7 +160,9 @@ do_test (void)

>    fails |= test_wrp2 (EINVAL, ENOMEM, mlock, (void *) -1, 1);

>    fails |= test_wrp (EINVAL, nanosleep, &ts, &ts);

>    fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0);

> -  fails |= test_wrp (ENODEV, quotactl, Q_GETINFO, NULL, -1, (caddr_t) &dqblk);

> +  /* quotactl returns ENOSYS for kernels not configured with CONFIG_QUOTA.  */

> +  fails |= test_wrp2 (ENODEV, ENOSYS, quotactl, Q_GETINFO, NULL, -1,

> +                     (caddr_t) &dqblk);

>    fails |= test_wrp (EINVAL, sched_getparam, -1, &sch_param);

>    fails |= test_wrp (EINVAL, sched_getscheduler, -1);

>    fails |= test_wrp (EINVAL, sched_get_priority_max, -1);

>
Florian Weimer March 30, 2017, 8:54 p.m. UTC | #2
* Adhemerval Zanella:

> 	* sysdeps/unix/sysv/linux/test-errno-linux.c (do_test): Handle

> 	non expected inotify_add_watch and quotactl return.


Makes sense to me.  Thanks.
diff mbox

Patch

diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c
index 03a74bd..87ed103 100644
--- a/sysdeps/unix/sysv/linux/test-errno-linux.c
+++ b/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -147,7 +147,10 @@  do_test (void)
   fails |= test_wrp (EBADF, fdatasync, -1);
   fails |= test_wrp (EBADF, flock, -1, LOCK_SH);
   fails |= test_wrp (ESRCH, getpgid, -1);
-  fails |= test_wrp (EINVAL, inotify_add_watch, -1, "/", 0);
+  /* Linux v3.8 (676a0675c) removed the test to check at least one valid
+     bit in flags (to return EINVAL).  It was later added back in v3.9
+     (04df32fa1).  */
+  fails |= test_wrp2 (EINVAL, EBADF, inotify_add_watch, -1, "/", 0);
   fails |= test_wrp (EINVAL, mincore, (void *) -1, 0, vec);
   /* mlock fails if the result of the addition addr+len was less than addr
      (which indicates final address overflow), however on 32 bits binaries
@@ -157,7 +160,9 @@  do_test (void)
   fails |= test_wrp2 (EINVAL, ENOMEM, mlock, (void *) -1, 1);
   fails |= test_wrp (EINVAL, nanosleep, &ts, &ts);
   fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0);
-  fails |= test_wrp (ENODEV, quotactl, Q_GETINFO, NULL, -1, (caddr_t) &dqblk);
+  /* quotactl returns ENOSYS for kernels not configured with CONFIG_QUOTA.  */
+  fails |= test_wrp2 (ENODEV, ENOSYS, quotactl, Q_GETINFO, NULL, -1,
+                     (caddr_t) &dqblk);
   fails |= test_wrp (EINVAL, sched_getparam, -1, &sch_param);
   fails |= test_wrp (EINVAL, sched_getscheduler, -1);
   fails |= test_wrp (EINVAL, sched_get_priority_max, -1);