[LTP] [PATCH v2] syscalls/quotatcl01.c: Rewrite && Convert to new API

Xiao Yang yangx.jy@cn.fujitsu.com
Mon Oct 31 11:20:32 CET 2016


On 2016/10/31 18:11, Cyril Hrubis wrote:
> Hi!
> Pushed with follwing diff, thanks.
>
> Apart from cosmetic things like removing useless cast to caddrt_t I've
> changed it to handle missing quotacheck command gracefully. I.e. we have
> to set the mount flag right after we mount the device otherwise the test
> cleanup in library will fail when we call tst_brk() because the
> tst_run_cmd() has failed since the test haven't umounted it. And also
> tst_run_cmd returns 255 on ENOENT which should be mapped to TCONF
> instead of TBROK.
>
> Also can you pretty please resend the second patch? I cannot find it in
> my mailbox anymore (possibly accidentally deleted).
Hi Cyril
Thanks for your review.   I will resend th second patch:-) .

Thanks
Xiao Yang.
> diff --git a/testcases/kernel/syscalls/quotactl/quotactl01.c b/testcases/kernel/syscalls/quotactl/quotactl01.c
> index 9e1ff36..89b5dc2 100644
> --- a/testcases/kernel/syscalls/quotactl/quotactl01.c
> +++ b/testcases/kernel/syscalls/quotactl/quotactl01.c
> @@ -63,16 +63,16 @@
>   #  ifndef QFMT_VFS_V0
>   #   define QFMT_VFS_V0     2
>   #  endif
> -#  define USRPATH MNTPOINT "/" "aquota.user"
> -#  define GRPPATH MNTPOINT "/" "aquota.group"
> +#  define USRPATH MNTPOINT "/aquota.user"
> +#  define GRPPATH MNTPOINT "/aquota.group"
>   #  define FMTID	QFMT_VFS_V0
>   # else
>   #  define _LINUX_QUOTA_VERSION  1
>   #  ifndef QFMT_VFS_OLD
>   #   define QFMT_VFS_OLD    1
>   #  endif
> -#  define USRPATH MNTPOINT "/" "quota.user"
> -#  define GRPPATH MNTPOINT "/" "quota.group"
> +#  define USRPATH MNTPOINT "/quota.user"
> +#  define GRPPATH MNTPOINT "/quota.group"
>   #  define FMTID	QFMT_VFS_OLD
>   # endif
>
> @@ -145,14 +145,24 @@ static struct tcase {
>   static void setup(void)
>   {
>   	const char *const cmd[] = {"quotacheck", "-ug", MNTPOINT, NULL};
> +	int ret;
>
>   	SAFE_MKDIR(MNTPOINT, 0755);
>
>   	SAFE_MKFS(tst_device->dev, "ext4", NULL, NULL);
>
>   	SAFE_MOUNT(tst_device->dev, MNTPOINT, "ext4", 0, "usrquota,grpquota");
> +	mount_flag = 1;
>
> -	tst_run_cmd(cmd, NULL, NULL, 0);
> +	ret = tst_run_cmd(cmd, NULL, NULL, 1);
> +	switch (ret) {
> +	case 255:
> +		tst_brk(TCONF, "quotacheck binary not installed");
> +	default:
> +		tst_brk(TBROK, "quotacheck exited with %i", ret);
> +	case 0:
> +	break;
> +	}
>
>   	test_id = geteuid();
>
> @@ -161,8 +171,6 @@ static void setup(void)
>
>   	if (access(GRPPATH, F_OK) == -1)
>   		tst_brk(TFAIL | TERRNO, "group quotafile didn't exist");
> -
> -	mount_flag = 1;
>   }
>
>   static void cleanup(void)
> @@ -179,7 +187,7 @@ static void verify_quota(unsigned int n)
>   	res_qf.dqi_igrace = 0;
>   	memset(fmt_buf, 0, sizeof(fmt_buf));
>
> -	TEST(quotactl(tc->cmd, tst_device->dev, *tc->id, (caddr_t) tc->addr));
> +	TEST(quotactl(tc->cmd, tst_device->dev, *tc->id, tc->addr));
>   	if (TEST_RETURN == -1) {
>   		tst_res(TFAIL | TERRNO, "quotactl failed to %s", tc->des);
>   		return;
>





More information about the ltp mailing list