This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Fix more test-errno issues
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Thu, 30 Mar 2017 17:54:04 -0300
- Subject: Re: [PATCH] Fix more test-errno issues
- Authentication-results: sourceware.org; auth=none
- References: <1490730469-9562-1-git-send-email-adhemerval.zanella@linaro.org>
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);
>