[LTP] [PATCH v1 01/11] syscalls/quotactl01: Also test with vfsv1 format
Cyril Hrubis
chrubis@suse.cz
Tue Oct 26 15:36:10 CEST 2021
> +/*\
> + * [Description]
> + * This testcase checks the basic flag of quotactl(2) for non-XFS filesystems
^
ext4?
It seems that the test is using ext4 only, are there any other
filesystems that should be tested here?
> + * with visible quota files(cover two formats, vfsv0 and vfsv1):
> *
> - * This testcase checks the basic flag of quotactl(2) for non-XFS filesystems:
> * 1) quotactl(2) succeeds to turn on quota with Q_QUOTAON flag for user.
> - * 2) quotactl(2) succeeds to set disk quota limits with Q_SETQUOTA flag
> + *
> + * 2 quotactl(2) succeeds to set disk quota limits with Q_SETQUOTA flag
> * for user.
> + *
> * 3) quotactl(2) succeeds to get disk quota limits with Q_GETQUOTA flag
> * for user.
> + *
> * 4) quotactl(2) succeeds to set information about quotafile with Q_SETINFO
> * flag for user.
> + *
> * 5) quotactl(2) succeeds to get information about quotafile with Q_GETINFO
> * flag for user.
> + *
> * 6) quotactl(2) succeeds to get quota format with Q_GETFMT flag for user.
> + *
> * 7) quotactl(2) succeeds to update quota usages with Q_SYNC flag for user.
> + *
> * 8) quotactl(2) succeeds to get disk quota limit greater than or equal to
> * ID with Q_GETNEXTQUOTA flag for user.
> + *
> * 9) quotactl(2) succeeds to turn off quota with Q_QUOTAOFF flag for user.
> + *
> * 10) quotactl(2) succeeds to turn on quota with Q_QUOTAON flag for group.
> + *
> * 11) quotactl(2) succeeds to set disk quota limits with Q_SETQUOTA flag
> * for group.
> + *
> * 12) quotactl(2) succeeds to get disk quota limits with Q_GETQUOTA flag
> * for group.
> + *
> * 13) quotactl(2) succeeds to set information about quotafile with Q_SETINFO
> * flag for group.
> + *
> * 14) quotactl(2) succeeds to get information about quotafile with Q_GETINFO
> * flag for group.
> + *
> * 15) quotactl(2) succeeds to get quota format with Q_GETFMT flag for group.
> + *
> * 16) quotactl(2) succeeds to update quota usages with Q_SYNC flag for group.
> + *
> * 17) quotactl(2) succeeds to get disk quota limit greater than or equal to
> * ID with Q_GETNEXTQUOTA flag for group.
> + *
> * 18) quotactl(2) succeeds to turn off quota with Q_QUOTAOFF flag for group.
> */
This does not render as a list in asciidoc once the documentation is
rendered. I would have converted it to a bulleted style lists, i.e. the
list items would start with - instead of 1).
Also it's a bit poinless to repeat the quotactl(2) succeeds on each
line. It would make much more sense to put that part to the sentence
that describes the list as:
* This testcases checks that quotactl(2) succeeds to:
*
* - turn on quota with Q_QUOTAON flag
* - ...
> @@ -43,16 +66,12 @@
> #include "lapi/quotactl.h"
> #include "tst_test.h"
>
> -#ifndef QFMT_VFS_V0
> -# define QFMT_VFS_V0 2
> -#endif
> #define USRPATH MNTPOINT "/aquota.user"
> #define GRPPATH MNTPOINT "/aquota.group"
> -#define FMTID QFMT_VFS_V0
> #define MNTPOINT "mntpoint"
>
> -static int32_t fmt_id = FMTID;
> -static int test_id;
> +static int32_t fmt_id;
> +static int test_id, mount_flag;
> static char usrpath[] = USRPATH;
> static char grppath[] = GRPPATH;
> static struct dqblk set_dq = {
> @@ -163,9 +182,22 @@ static struct tcase {
>
> static void setup(void)
> {
> - const char *const cmd[] = {"quotacheck", "-ugF", "vfsv0", MNTPOINT, NULL};
> -
> - SAFE_CMD(cmd, NULL, NULL);
> + const char *const vfsv0_cmd[] = {"quotacheck", "-ugF", "vfsv0", MNTPOINT, NULL};
> + const char *const vfsv1_cmd[] = {"quotacheck", "-ugF", "vfsv1", MNTPOINT, NULL};
> +
> + SAFE_MKFS(tst_device->dev, tst_device->fs_type, NULL, NULL);
> + SAFE_MOUNT(tst_device->dev, MNTPOINT, tst_device->fs_type, 0, "usrquota,grpquota");
> + mount_flag = 1;
Why are you moving the mount from the tst_test structure here?
Do we have to remount the device to change the quota format?
> + if (tst_variant) {
> + tst_res(TINFO, "quotactl() with vfsv1 format");
> + SAFE_CMD(vfsv1_cmd, NULL, NULL);
> + fmt_id = QFMT_VFS_V1;
> + } else {
> + tst_res(TINFO, "quotactl() with vfsv0 format");
> + SAFE_CMD(vfsv0_cmd, NULL, NULL);
> + fmt_id = QFMT_VFS_V0;
> + }
>
> test_id = geteuid();
> if (access(USRPATH, F_OK) == -1)
> @@ -182,6 +214,12 @@ static void setup(void)
> getnextquota_nsup = 1;
> }
>
> +static void cleanup(void)
> +{
> + if (mount_flag && tst_umount(MNTPOINT))
> + tst_res(TWARN | TERRNO, "umount(%s)", MNTPOINT);
> +}
> +
> static void verify_quota(unsigned int n)
> {
> struct tcase *tc = &tcases[n];
> @@ -222,13 +260,14 @@ static struct tst_test test = {
> },
> .test = verify_quota,
> .tcnt = ARRAY_SIZE(tcases),
> - .mount_device = 1,
> + .needs_device = 1,
> .dev_fs_type = "ext4",
> .mntpoint = MNTPOINT,
> - .mnt_data = "usrquota,grpquota",
> .needs_cmds = (const char *const []) {
> "quotacheck",
> NULL
> },
> .setup = setup,
> + .cleanup = cleanup,
> + .test_variants = 2,
> };
> --
> 2.23.0
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list