[PATCH v1 2/2] tests/quotactl-xfs.c: fix typos and unify code

Zhibin Li 08826794brmt at gmail.com
Fri Jun 15 08:05:24 UTC 2018


I haven't checked decoding of successful quotaclt-xfs(,-v) because for now
I don't know how to solve or workaround the alignment problems described in
my status report #4. I'm doing research but I' m not sure what I can find
eventually (considering there is already a structure fs_quota_statv with
appropriate layout). Any suggestions or guidance?

On Fri, Jun 15, 2018 at 3:58 PM Zhibin Li <08826794brmt at gmail.com> wrote:

> * quotactl-xfs.c: Fix disorder of PRINT_FIELD_U and check_quota function
> invocations; use check_quota function for invalid commands; remove unused
> variable rc.
> (invalid_cmd): New variable.
> ---
>  tests/quotactl-xfs.c | 39 ++++++++++++++++++++++++---------------
>  1 file changed, 24 insertions(+), 15 deletions(-)
>
> diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c
> index fab451e2..c08b1584 100644
> --- a/tests/quotactl-xfs.c
> +++ b/tests/quotactl-xfs.c
> @@ -142,14 +142,14 @@ print_xquota_stat(int rc, void *ptr, void *arg)
>  # if VERBOSE
>         printf(", qs_flags=");
>         printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
> +       PRINT_FIELD_U(", ", *qs, qs_incoredqs);
>         PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
>         PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
>         PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
>         PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
>         PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
>         PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
> -       PRINT_FIELD_U("}, ", *qs, qs_incoredqs);
> -       PRINT_FIELD_D(", ", *qs, qs_btimelimit);
> +       PRINT_FIELD_D("}, ", *qs, qs_btimelimit);
>         PRINT_FIELD_D(", ", *qs, qs_itimelimit);
>         PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
>         PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
> @@ -207,7 +207,7 @@ main(void)
>         char bogus_addr_str[sizeof(void *) * 2 + sizeof("0x")];
>         char unterminated_str[sizeof(void *) * 2 + sizeof("0x")];
>
> -       long rc;
> +       static char invalid_cmd[1024];
>         TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_disk_quota, xdq);
>         TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_quota_stat, xqstat);
>         TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_quota_statv, xqstatv);
> @@ -234,12 +234,12 @@ main(void)
>                     "|XFS_QUOTA_GDQ_ACCT|XFS_QUOTA_GDQ_ENFD"
>                     "|XFS_QUOTA_PDQ_ENFD|0xdeadbec0]");
>
> -       rc = syscall(__NR_quotactl, QCMD(Q_XQUOTAON, 0xfacefeed),
> bogus_dev,
> -                    bogus_id, bogus_addr);
> -       printf("quotactl(QCMD(Q_XQUOTAON, %#x /* ???QUOTA */)"
> -              ", %s, %p) = %s\n",
> -              QCMD_TYPE(QCMD(Q_XQUOTAON, 0xfacefeed)),
> -              bogus_dev_str, bogus_addr, sprintrc(rc));
> +       snprintf(invalid_cmd, sizeof(invalid_cmd),
> +                "QCMD(Q_XQUOTAON, %#x /* ???QUOTA */)",
> +                QCMD_TYPE(QCMD(Q_XQUOTAON, 0xfacefeed)));
> +       check_quota(CQF_ID_SKIP,
> +                   QCMD(Q_XQUOTAON, 0xfacefeed), invalid_cmd,
> +                   bogus_dev, bogus_dev_str, bogus_addr);
>
>
>         /* Q_XQUOTAOFF */
> @@ -264,11 +264,11 @@ main(void)
>         /* Q_XGETQUOTA */
>
>         /* Trying our best to get successful result */
> -       check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_GETQUOTA, USRQUOTA)),
> +       check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_XGETQUOTA, USRQUOTA)),
>                     ARG_STR("/dev/sda1"), getuid(), xdq, print_xdisk_quota,
>                     (intptr_t) 1);
>
> -       check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_GETQUOTA, GRPQUOTA)),
> +       check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_XGETQUOTA, GRPQUOTA)),
>                     ARG_STR(NULL), -1, xdq, print_xdisk_quota, (intptr_t)
> 2);
>
>
> @@ -298,21 +298,30 @@ main(void)
>                     ARG_STR("/dev/sda1"), xqstat, print_xquota_stat,
> (intptr_t) 1);
>
>         check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
> -                   ARG_STR(QCMD(Q_XGETQSTATV, PRJQUOTA)),
> +                   ARG_STR(QCMD(Q_XGETQSTAT, USRQUOTA)),
> +                   ARG_STR("NULL"), xqstat, print_xquota_stat, (intptr_t)
> 2);
> +
> +       check_quota(CQF_ID_SKIP,
> +                   ARG_STR(QCMD(Q_XGETQSTAT, PRJQUOTA)),
>                     unterminated, unterminated_str,
> -                   xqstat + 1, print_xquota_stat, (intptr_t) 2);
> +                   xqstat + 1);
>
>
>         /* Q_XGETQSTATV */
>
>         check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
> -                   ARG_STR(QCMD(Q_XGETQSTAT, USRQUOTA)),
> -                   ARG_STR("/dev/sda1"), xqstatv, print_xquota_statv, 1);
> +                   ARG_STR(QCMD(Q_XGETQSTATV, USRQUOTA)),
> +                   ARG_STR("/dev/sda1"), xqstatv, print_xquota_statv,
> (intptr_t) 1);
>
>         check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
>                     ARG_STR(QCMD(Q_XGETQSTATV, GRPQUOTA)),
>                     ARG_STR(NULL), xqstatv, print_xquota_statv, (intptr_t)
> 2);
>
> +       check_quota(CQF_ID_SKIP,
> +                   ARG_STR(QCMD(Q_XGETQSTATV, PRJQUOTA)),
> +                   unterminated, unterminated_str,
> +                   xqstatv + 1);
> +
>
>         /* Q_XQUOTARM */
>
> --
> 2.14.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20180615/299584ea/attachment.html>


More information about the Strace-devel mailing list