misc/test-errno-linux: Handle EINVAL from quotactl

Message ID 87tv6ehjwo.fsf@oldenburg2.str.redhat.com
State New
Headers show
Series
  • misc/test-errno-linux: Handle EINVAL from quotactl
Related show

Commit Message

Florian Weimer Dec. 5, 2019, 3:27 p.m.
In commit 3dd4d40b420846dd35869ccc8f8627feef2cff32 ("xfs: Sanity check
flags of Q_XQUOTARM call"), Linux 5.4 added checking for the flags
argument, causing the test to fail due to too restrictive test
expectations.

-----
 sysdeps/unix/sysv/linux/test-errno-linux.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Adhemerval Zanella Dec. 5, 2019, 4:27 p.m. | #1
On 05/12/2019 12:27, Florian Weimer wrote:
> In commit 3dd4d40b420846dd35869ccc8f8627feef2cff32 ("xfs: Sanity check

> flags of Q_XQUOTARM call"), Linux 5.4 added checking for the flags

> argument, causing the test to fail due to too restrictive test

> expectations.


LGTM, thanks.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>


> 

> -----

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

>  1 file changed, 3 insertions(+), 2 deletions(-)

> 

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

> index 0dc2f18312..83e58491ba 100644

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

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

> @@ -160,8 +160,9 @@ do_test (void)

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

>    /* quotactl returns ENOSYS for kernels not configured with

>       CONFIG_QUOTA, and may return EPERM if called within certain types

> -     of containers.  */

> -  fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM),

> +     of containers.  Linux 5.4 added additional argument validation

> +     and can return EINVAL.  */

> +  fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM, EINVAL),

>  		      quotactl, Q_GETINFO, NULL, -1, (caddr_t) &dqblk);

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

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

>

Patch

diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c
index 0dc2f18312..83e58491ba 100644
--- a/sysdeps/unix/sysv/linux/test-errno-linux.c
+++ b/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -160,8 +160,9 @@  do_test (void)
   fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0);
   /* quotactl returns ENOSYS for kernels not configured with
      CONFIG_QUOTA, and may return EPERM if called within certain types
-     of containers.  */
-  fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM),
+     of containers.  Linux 5.4 added additional argument validation
+     and can return EINVAL.  */
+  fails |= test_wrp2 (LIST (ENODEV, ENOSYS, EPERM, EINVAL),
 		      quotactl, Q_GETINFO, NULL, -1, (caddr_t) &dqblk);
   fails |= test_wrp (EINVAL, sched_getparam, -1, &sch_param);
   fails |= test_wrp (EINVAL, sched_getscheduler, -1);